Linq-запрос, объединяющий сущности ADO.Net из соединения с базой данных и ссылку на службу данных? - PullRequest
2 голосов
/ 25 января 2012

Я даже не совсем уверен, как правильно сформулировать это, но здесь все сказано.

У меня есть два .net веб-приложения.Один обеспечивает службу данных WCF («DEPT_DataService»), которая предоставляет доступ к ряду наборов сущностей («DEPT_Entities»).Другое приложение MVC2, которое предоставляет веб-интерфейс, а также имеет свои собственные объекты ADO.net, которые поддерживаются локальной базой данных MSSQL.

Использование чрезмерно базовой структуры для иллюстрации:

Допустим, приложение службы данных WCF включает в себя один набор сущностей «Отделы», подкрепленный таблицей «Отделы» в своей локальной базе данных SQL.Он содержит список всех отделов компании, а также идентификатор сотрудника основного контакта для этого отдела.

Предположим также, что приложение MVC2 включает в себя один набор сущностей «Сотрудники», который содержитсписок людей, включая их имя и идентификатор сотрудника.

Я добавил DEPT_Entities в приложение MVC2 в качестве справочника услуг, "DEPT".Когда я смотрю на эту ссылку службы в обозревателе объектов, я вижу «DEPT_Entities» и «Departments».

Я хочу определить отношение, которое позволяет мне через Linq ссылаться на что-то подобное:

Employee firstEmployee = db.Employees.First();
Department[] firstEmployeesDepts = firstEmployee.Departments.toList();

... другими словами, я, по сути, хочу свойство навигации, обеспечивающее взаимосвязь «один ко многим» между сущностями Employee, найденными в локальной базе данных, и сущностями Department, найденными в удаленных данных.сервис.

Это выполнимо?Как?

Спасибо!

1 Ответ

1 голос
/ 25 января 2012

Если вы хотите получить доступ к базам данных напрямую без веб-службы:

Вы можете использовать приемы SQL Server (удаленный запрос в представлении на связанный сервер), чтобы Linq2SQL мог запрашивать удаленную таблицу.По сути, вы симулируете, что удаленная таблица - это просто обычная локальная таблица (представление, но L2S не волнует).

Это будет работать, но не будет красиво.

Если вы хотитеиметь веб-сервис перед одной из таблиц: это не будет работать, потому что L2S не понимает веб-сервисы.

На самом деле, я бы архитектурно рекомендовал не скрывать тот факт, что вы вызываете веб-сервис.

...