Superficie a una consulta de servicios de acceso en línea de SharePoint para usar externamente
-
10-12-2019 - |
Pregunta
¿Hay alguna forma de escribir una consulta en los servicios de acceso para SharePoint Online, y surgir sus resultados a través de los servicios web o el modelo de objeto cliente para .NET?¿Como la forma en que las tablas están surgidas como listas?
Fondo
Tenemos una base de datos de acceso que está emitida utilizando servicios de acceso para SharePoint Online. Me han dado la tarea de recuperar algunos datos de los servicios de acceso como un archivo XML para alimentar a otro sistema.
Hay una consulta existente, escrita en SQL para obtener en estos datos (desde el momento antes de que la base de datos de Access estuvo en línea) que sea altamente compleja y me temo si lo convierto en un camloquery o use LINQ para crear la consulta,es decir, no tendrá todas las funciones que existen en SQL, y 2) se hinchará, lo que lo harán lento y difícil de mantener.
Consulta de ejemplo simplificado:
select *
from members m, info i
where m.id = i.memberid
and year(m.date) = 1900
UNION
select *
from members m
where m.id not in (select memberid from info)
UNION
select *
from members m, info i
where m.id = i.memberid
and i.date_to = (select max(date_to) from info where memberid = i.memberid)
Order By m.Name
Solución
I ended up doing this by using the C# client object model to import all the data from the relevant lists into an in-memory SQLite database, and then running a modified SQL query on the SQLite tables. As there wasn't that much data this was an acceptable method.