2011-05-01 36 views
8

我在一个MVC3项目中使用实体框架4。我试图访问两个不同的数据库(A和B):使用实体框架同时使用两个不同的数据库

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

现在,当我尝试从数据库A中查询时,出现异常“无法找到概念模型类型”。

我无法想象EF不会让您使用不同的数据库,所以我的问题是:创建适当的DbContext的新实例时是否需要额外执行一些操作?

+0

你有没有找到解决方案?即时通讯具有完全相同的问题(除了我只有数据库A的一半有edmx,一半是代码初级) – 2011-07-25 05:59:07

回答

1

请确保您不使用相同的实体名称edmx文件。您可以用xml editor右键点击该文件并手动更改edmx

请注意,由于某些安全原因,您不能嵌套上下文。他们只能分开使用。

+0

哦,这是一个好点;但是,我的实体不具有相同的名称或标识符。顺便说一下,我只有“数据库优先”数据库的edmx文件。 – 2011-05-01 22:53:30

2

我试图解决“无法找到概念模型类型”异常时偶然发现此线程。
我使用多个型号的EF 4.2。我用我的一个模型实现了DbContext来“试用”。当我编译并运行时,我收到了一个完全不同的模型中的实体在上面的异常完全不同的数据库!

经过很多麻烦,我终于实现了DbContext到其他两个模型,一切运行良好。

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

+0

这对我有用。谢谢! – 2013-05-09 21:23:06

相关问题