2010-04-17 60 views

回答

3

我认为AIS问是,如果你可以加入从不同的数据库,没有什么不同供应商,导致一个实体映射到两个或多个表或表来自不同数据库的意见

如果你考虑一下,当你使用Visual Studio创建一个EDM模型时,它会要求你给一个现有的数据库,当完成创建模型时,它会生成一个EF连接字符串,连接字符串。

E.g:元数据= RES:// /EFTestModel.csdl|res:// /EFTestModel.ssdl|res:// /EFTestModel.msl;provider=System.Data.SqlClient; 提供商连接字符串= “数据源= \;初始目录= EFTest;集成安全性= TRUE; MultipleActiveResultSets =真” *

所以每个模型只有一个数据库,只有连接字符串相匹配。

EF4仍不支持创建一个适用于N个存储模型的概念模型。至少这不受任何内置提供者支持。也许在未来,这可以通过一个新的提供者来完成,这个提供者结合了许多存储的支持(来自相同的提供者或不同的提供者)。

我还没有做就可以了足够的研究,但也许的Windows Server AppFabric的(代号速度)可能是通过这个差距的桥梁。

注:我已尽力,甚至编辑手动为EDM(EDMX)的XML插入< EDMX内的第二元素:StorageModels >标签,但它不匹配EDM XML架构中,以便VS警告一下: 错误10021:遇到重复的Schema元素。

贝尼特斯奥尔特加 MAP2010

4

我竟然没有找到一个方式,如果你的数据库支持同义词作出EF模型跨越多个数据库。基本上你设置别名到上的Database2数据库1,创建单独的EDMX模型对每个,然后合并XML

我张贴的具体步骤作出EDMX文件跨越多个数据库here如果你有兴趣,有一个脚本来执行沿只要有事情发生变化,您就会合并。

+0

从长远来看,您是否遇到过任何问题?它完全兼容吗? – 2012-09-06 09:26:14

+0

伟大的链接。非常巧妙。 – 2012-09-06 09:32:16

+1

@LuisFilipe我做这个项目实际上被取消了,所以我从来没有机会完全测试一切。从我所得到的机会来测试,唯一真正的限制是'同义词'的限制。例如,如果您的同义词指向另一台服务器,则仅限于访问链接服务器的SQL规则。 – Rachel 2012-09-06 19:35:58