C# 查询多个数据源的实体框架

C# 查询多个数据源的实体框架,c#,sql-server,entity-framework,mongodb,multiple-databases,C#,Sql Server,Entity Framework,Mongodb,Multiple Databases,是否有一种方法可以使用entity framework同时跨多个数据源进行查询,如(mongodb、sql server、oracle)。例如,用户帐户和配置文件位于sql server上,其他数据位于mongodb上,用于快速访问,而其他数据位于oracle上。EF是否支持以这种方式查询多个数据源?或者是否有任何其他解决方案可能支持此类功能。提前谢谢。不,EntityFramework不能这样做。事实上,它甚至不能在一个数据库的两个不同上下文上进行查询 您可以在EF上面编写自己的抽象层,它将适

是否有一种方法可以使用entity framework同时跨多个数据源进行查询,如(mongodb、sql server、oracle)。例如,用户帐户和配置文件位于sql server上,其他数据位于mongodb上,用于快速访问,而其他数据位于oracle上。EF是否支持以这种方式查询多个数据源?或者是否有任何其他解决方案可能支持此类功能。提前谢谢。

不,EntityFramework不能这样做。事实上,它甚至不能在一个数据库的两个不同上下文上进行查询

您可以在EF上面编写自己的抽象层,它将适当地转发您的查询


更新:作为事后思考-我不认为编写一个DAL来管理所有DAL是一个好主意。不同的数据源通常意味着不同的关注点,这意味着您应该将它们作为不同的服务分开。乍一看并不方便,但从长远来看,它(通常)是值得的。

他们并没有直接使用实体框架的方法。但您可以创建EDMX,然后链接不同的服务器,这意味着您将拥有多个数据源


我建议的EDMX项称为ADO.NET实体数据模型

Hmmm,这意味着要编写一个DAL来管理所有数据源之间的查询,并针对它们填充自定义模型。有没有其他解决方案可以做到这一点?任何想法我都会给post添加一些想法。换句话说,改变体系结构,通过单独的WCF服务提供自己的数据,然后汇总使用所有服务的manager上的数据,从而公开所有数据源。这听起来是个好方法吗?你不必考虑“WCF服务”。我说的是简单明了的应用程序服务,它们可以只是接口。不,对我来说,在data manager中汇总所有数据听起来不太好,因为,正如我已经说过的,很可能是不相关的数据。谢谢你的想法,但是在dotnet中开发的企业解决方案是如何工作的呢。通过编写自定义DAL并通过应用程序进行管理来完成所有工作?@Wajeeh是的,这是一个很好的方法,分离到DAL层。我正在尝试查询不同的数据源,我们可以将它们链接到一起吗。例如,数据源是mongoDb和sql server?请添加一些说明,说明您试图在此处聚合哪些类型的数据,以及为什么这些数据存储在不同的位置。