EF Code First是否支持查询多个数据库?

时间:2012-05-31 12:57:50

标签: code-first multiple-databases

我们首次在我们的组织中使用Entity Framework Code First。我们的一个查询必须跨越两个数据库。这是一个SQL查询:

SELECT t1.col,t2.col   FROM DB1..table1 t1   INNER JOIN DB2..table2 t2 ON t1.key = t2.key

从我的所有搜索中,我都不相信Code First可以支持此查询。我读过的两个解决方法是在DB1中创建一个读取DB2.table2的视图,然后仅对DB1执行所有查询。另一个选项是对DB1和DB2进行单独读取,然后在代码中合并数据。

我们担心设置一堆视图,因为它只会使数据库混乱,我们担心合并数据时的性能。

是否可以通过Code First支持上述查询?

谢谢大家。

-Troy

1 个答案:

答案 0 :(得分:1)

答案是'不'它不支持它(现在?)from all I have read。除了视图之外,解决此问题的一种方法是使用指向另一个数据库/模式/表的同义词,它有自己的注意事项。

创建SYNONYM(Transact-SQL)

http://msdn.microsoft.com/en-us/library/ms177544.aspx

然后创建模型以指向同义词(首先使用数据库时我必须从“假”表创建模型,或者您可以使用脚本来合并EDMX xml)和JOIN,INSERT,UPDATE等等。工作(以及EF)。希望这很有帮助。可能还有其他选择,但我仍然在寻找它们。