【问题标题】:Does EF Code First support querying multiple databases?EF Code First 是否支持查询多个数据库?
【发布时间】:2012-05-31 12:57:50
【问题描述】:

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

选择 t1.col, t2.col 从 DB1..table1 t1 INNER JOIN DB2..table2 t2 ON t1.key = t2.key

从我所有的搜索来看,我不相信 Code First 可以支持这个查询。我读过的两种解决方法是在 DB1 中创建一个读取 DB2.table2 的视图,然后只对 DB1 执行所有查询。另一种选择是分别读取 DB1 和 DB2,然后在代码中合并数据。

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

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

谢谢大家。

-特洛伊

【问题讨论】:

    标签: code-first multiple-databases


    【解决方案1】:

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

    创建同义词 (Transact-SQL)

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多