我正在使用EF6 Code First构建Asp.Net应用程序 . 我创建了两个项目 . (一个主要项目和一个类库项目) . 两个项目都有Model类和它们自己的DbContext类,但是两个项目共享相同的连接字符串和数据库 .
//Model from Project A
public class Product
{
public int ProductId{get;set;}
}
//Model from Project B
public class Invoice
{
public int InvoiceId{get;set;}
[ForeignKey("Product")]
public int ProductId{get;set;}
public virtual Product Product
}
这里我将ProjectB中的 ProjectA.Product.ProductId
引用为 ProjectB.Invoice.ProductId
(外键约束)
Problem
-
在项目A中执行代码首次迁移:执行迁移没有问题 .
-
在项目B中执行代码首次迁移:错误
数据库中已有一个名为“Product”的对象 .
似乎在执行项目A的迁移时创建表数据库中的产品,稍后,当执行项目B的迁移时,似乎EF尝试再次创建表Product .
我已阅读过很多文章,但尚未找到任何解决方案 . 我该如何解决这个问题?有人可以通过提供解决方案来帮助我吗?
P.S:我从BaseContext类继承项目上下文类,它继承自DbContext类 .
我已在每个项目中启用了自动迁移 .