使用Entity Framework同时使用两个不同的数据库

时间:2011-05-01 21:43:38

标签: entity-framework-4

我在MVC3项目中使用Entity Framework 4。我正在尝试访问两个不同的数据库(A和B):

  • 数据库A和B完全不同且无关。
  • 数据库A是'代码优先'SQL压缩数据库。
  • 数据库B是“数据库第一”SQL Server数据库。
  • 我对数据库,没有链接或跨数据库连接都有简单的查询。
  • 如果从项目中删除其他DbContext,则数据库连接都有效。

现在,当我尝试从数据库A进行查询时,我遇到了一个异常“无法找到概念模型类型”。

我无法想象EF不会让你使用不同的数据库,所以我的问题是:在创建适当的DbContext的新实例时,我是否需要做一些额外的事情才能使其工作?

2 个答案:

答案 0 :(得分:2)

我在尝试解决“无法找到概念模型类型”异常时偶然发现了这个帖子。
我使用EF 4.2与多个模型。我用我的一个模型实现了DbContext“试试看”。当我编译并运行时,我收到了一个完全不同的数据库中完全不同模型的实体的上述异常!

经过多次麻烦后,我终于将DbContext实现到了其他两个模型,一切运行正常。

我知道这不一定能回答这个问题,但是我想把这个问题留给其他任何有同样问题并且在这篇文章中发现的人。

答案 1 :(得分:1)

确保不对edmx个文件使用相同的实体名称。您可以通过右键单击文件edmxxml editor open with手动更改{{1}}。

请注意,出于某些安全原因,您无法嵌套上下文。它们只能分开使用。