Code First和Model First在同一个项目中?

时间:2012-06-27 07:21:10

标签: entity-framework-4 ef-code-first

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

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

当我尝试枚举ProductLines属性(下面的第3行)时,我得到了以下错误“无法找到'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”的内容。

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

想法?

永远感谢你! - G

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,但反过来说:首先是DbContext +生成的数据库,然后在数据库中生成一个edmx(仅用于一点介绍)。它似乎是对EF的限制:EF currently has a restriction that POCO classes can't be loaded from an assembly that contains classes with the EF attributes

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

相关问题