2012-05-31 78 views
1

我们首次在我们的组织中使用实体框架代码。我们的查询之一必须跨越两个数据库。这里有一个SQL查询:EF Code First支持查询多个数据库吗?

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

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

建立同义字(的Transact-SQL)

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

然后创建你的模型指向同义词的(当使用数据库,我首先创建一个从“假”表型号,或者您可以使用脚本来合并EDMX XML)和JOIN,INSERT,UPDATE等都应该工作(以及EF)。希望这是有帮助的。可能还有其他选项可用,但我仍然在自己寻找它们。