У меня есть служба Windows, которая предоставляет три источника данных через ADO.NET Data Services. Эти источники данных предназначены только для чтения XML-файлов, которые загружаются в XDocument и затем предоставляются через .AsQueryable (); Источники содержат поля с целочисленными идентификаторами, которые можно рассматривать как «внешние ключи» между источниками данных.
Мой клиент использует эту службу данных и может запрашивать три источника данных индивидуально с помощью LINQ. Существуют элементы управления с привязкой к данным, которые используют данные.
На клиенте я бы хотел объединить эти три источника данных в стиле SQL. Первоначально я делал это с помощью соединения LINQ, но обнаружил, что службы данных ADO.NET не поддерживают это.
Мой второй подход состоял в том, чтобы извлечь данные в виде отдельных таблиц и затем выполнить клиентскую сторону соединения - несмотря на то, что это было менее чем оптимальным. Однако, поскольку LINQ получает данные лениво и создает запрос при перечислении данных, это в конечном итоге приводит к той же проблеме, что и первый подход.
Итак, теперь я думаю, что лучший способ сделать это - объединить все мои данные на стороне сервера и представить их, используя новый объект с интерфейсом IQueryable.
Это действительно лучший подход? Кажется .... неопрятным.