当前位置:  开发笔记 > 数据库 > 正文

跨多个数据库的ADO.Net实体框架

如何解决《跨多个数据库的ADO.Net实体框架》经验,为你挑选了1个好方法。

在Linq2Sql中,只需将数据库名称添加到源,即可将数据上下文连接到多个数据库.

有没有办法在Linq 2 Entities/ADO.net Entity Framework中实现这一目标?可以将数据库名称添加到表名中吗?

我试图将'Schema'从dbo更改为MyDatabase.dbo,但EF将其封装成

SELECT FROM [MyDatabase.dbo].[MyTable]

将"架构"更改为"我的数据库"的诡计.[dbo'将被转义为

SELECT FROM [MyDatabase]].[dbo].[MyTable]

(记住这两个]].)



1> Craig Stuntz..:

首先,这不是官方支持的.

您链接到LINQ to SQL的答案只是使用数据库服务器执行异构查询的能力.我不明白为什么这对于实体框架也不起作用,因为它是一个数据库服务器功能,而不是任何一个框架的功能.换句话说,LINQ to SQL仍在处理连接,就像只涉及一个数据库服务器一样.但请记住,并非所有数据库服务器都可以执行此操作.

至于在EDMX中要更改的内容,请在"SSDL内容"部分中查找EntitySet节点的Schema属性.

关于这种技术的一个警告是,当您从数据库更新模型时,存储模型将被清除并从头开始替换.因此,您需要重新应用这些更改.这在LINQ to SQL中不是问题,因为LINQ to SQL根本不支持从数据库进行自动更新.

一个更好的选择可能是在数据库中创建一个VIEW,它引用另一个数据库并映射该视图,而不是直接映射表和另一个数据库.

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有