1

我们第一次在我们的组织中使用 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 支持上述查询?

谢谢大家。

-特洛伊

4

1 回答 1

1

读过的所有 内容来看,答案是“不”,它不支持它(现在?)。除了视图之外,解决这个问题的一种方法是使用指向另一个数据库/模式/表的同义词,它有自己的警告。

创建同义词 (Transact-SQL)

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

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

于 2013-03-18T20:57:14.420 回答