2

我有两个正在访问的数据库。第一个是针对我使用 EF Model First 连接到的联系人数据库;创建 edmx。从那以后,我在使用实体框架时开始学习 CODE First 的优点,所以我决定在同一个项目中使用 Code First 技术编写 Product 数据库,允许从我正在编写的代码生成数据库。

一切都编译得很好。当我点击我的线束并尝试创建产品数据库并从其中一个表中检索值列表时,就会出现问题......

当我尝试枚举 ProductLines 属性(下面的 Line3)时,出现以下错误“找不到 'Core.Data.Account' 的概念模型类型” 。

1.    using (var ctx = new ProductDb())
2.    {
3.        var lines = ctx.ProductLines.ToList();
4.        this.litOne.Text = lines.Count.ToString();
5.    }        

经过一些研究,似乎此消息可能是由于多个具有相同名称的实体(无论名称空间如何)而出现的,但是 ProductDb 上下文中没有任何名称为“Account”的实体。

在 OTHER 上下文中有一个由 Model First 方法创建的名为“Account”的类。但是如何/为什么会有所作为?它们各自指向不同的数据库,即不同的连接字符串。为什么 ProductDb 会尝试创建一个名为 Account 的表,而它应该完全不知道它的存在?

想法?

一如既往地谢谢你!,-G

4

1 回答 1

1

我遇到了同样的问题,但反过来:首先是一个 DbContext + 生成的数据库,然后从数据库中生成一个 edmx(只是为了做一点介绍)。这似乎是 EF 中的一个限制:EF 当前有一个限制,即不能从包含具有 EF 属性的类的程序集中加载 POCO 类

您现在唯一能做的就是将上下文保存在单独的程序集中。

于 2012-06-27T21:11:48.917 回答