Linq查询结合了来自数据库连接和数据服务引用的ADO.Net实体

本文关键字:引用 服务 ADO 实体 Net 数据 结合了 查询 数据库连接 Linq | 更新日期: 2023-09-27 18:21:14

我甚至不太确定如何正确地使用这个词,但如下所示。

我有两个.net网络应用程序。其中一个提供WCF数据服务("DEPT_DataService"),该服务提供对多个实体集("DEPT_Entitys")的访问。另一个是MVC2应用程序,它提供了一个web界面,也有自己的ADO.net实体,这些实体由本地MSSQL数据库支持。

使用过于基本的结构来说明:

假设WCF数据服务应用程序包括一个实体集"Departments",该实体集由其本地SQL数据库中的"Department"表支持。它包含公司中所有部门的列表,以及该部门的主要联系人的员工ID。

假设MVC2应用程序包括一个实体集"Employees",其中包含一组人员的列表,包括他们的姓名和员工ID。

我已经将DEPT_Entity作为服务引用"DEPT"添加到MVC2应用程序中。当我在对象浏览器中查看该服务引用时,我会看到"DEPT_Entitys"answers"Departments"。

我想做的是定义一种关系,允许我通过Linq引用这样的东西:

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

换句话说,我本质上想要一个导航属性,该属性提供本地数据库中的Employee实体和远程数据服务中的Department实体之间的一对多关系。

这可行吗?怎样

谢谢!

Linq查询结合了来自数据库连接和数据服务引用的ADO.Net实体

如果您想在没有Web服务的情况下直接访问数据库:

您可以使用SQL Server技巧(在链接服务器的视图中进行远程查询)使Linq2SQL能够查询远程表。从本质上讲,您模拟远程表只是一个普通的本地表(一个视图,但L2S并不关心)。

这会奏效,但不会很好看。

如果您想在其中一个表前面有一个Web服务:这将不起作用,因为L2S不了解Web服务。

事实上,我建议不要在架构上阻碍您调用Web服务的事实。