【发布时间】:2011-03-12 06:04:14
【问题描述】:
使用 Entity Framework 4,我可以在同一模型中拥有来自不同数据库服务器的 2 个表吗? 我有来自 SQL Server A 的表 X 和来自服务器 B 的表 Y。 是否可以在一个模型下为每个表设置不同的连接字符串,还是需要不同的 dbml 文件?
【问题讨论】:
标签: sql-server visual-studio-2010 .net-4.0 entity-framework-4
使用 Entity Framework 4,我可以在同一模型中拥有来自不同数据库服务器的 2 个表吗? 我有来自 SQL Server A 的表 X 和来自服务器 B 的表 Y。 是否可以在一个模型下为每个表设置不同的连接字符串,还是需要不同的 dbml 文件?
【问题讨论】:
标签: sql-server visual-studio-2010 .net-4.0 entity-framework-4
不,你不能。整个 EDMX 文件有一个连接字符串。此外,EF 不允许表的完全限定名称。从链接服务器 MyServer.MyDatabase.dbo 定义表 TableA 可能会在 SQL 查询中产生类似 [MyServer.MyDatabase.dbo].[TableA] 的结果,它会抛出异常。
如果您希望在一个模型中支持来自两台服务器的表,请尝试将您的第二台服务器链接到第一台服务器,并在第一台服务器上的当前数据库中为第二台服务器中的每个表创建一个视图。
【讨论】:
IIRC 如果它们是链接服务器,您可能能够完全限定 DBML 中的表名。我没有要测试的东西,我知道您可以在同一服务器上的不同数据库上的 Linq2Sql 中进行测试。
【讨论】: