2013-08-28 16 views
0

有没有办法将实体框架与多个数据库一起使用? 甚至进一步使他们之间的关系表? 我有某种方式使用对方表的多个项目,我想与一些原因单独的数据库使用它们,所以不建议用模式将它们合并在一个数据库实体框架不止一个数据库

回答

1

我不认为你可以做到这一点在一个单一模型中,但它可能会创建两个DbContext类,然后使用一个值来查询另一个。你不能在它们之间使用延迟加载,但这是一个小的代价。

2

如果您使用的是Sql Server 2005及更高版本,请使用Synonyms

例如: 假设您有三个sql server数据库。您可以选择一个作为“主”数据库,并在主数据库中为其他两个数据库中的表创建同义词。然后,可以在为不在主数据库中的表创建实体模型时使用同义词名称。

+0

我创建了同义词,但它们没有出现我为任何对象建模(视图,表格,过程),所以我怎样才能将这个导入到我的model.edmx中? – Serjik

+0

您可以在基于外部表的主数据库中创建视图吗?然后通过存储过程插入和更新? – Colin

+0

我可以想出两种方法来让它与edmx一起工作,但我不会建议它们中的任何一个。第一种方法是手动编辑edmx以包含您创建的同义词。如果你这样做,你会想避免使用设计器,因为它会覆盖你的更改(这违背了使用edmx的目的)。第二种方法是使用View来查看数据和存储过程来操作数据(如Colin提到的)。我认为这个选项会很麻烦,因为处理这些数据不太方便。 –