Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# EF代码首次迁移+;多DbContext+;外键_C#_Asp.net_Entity Framework_Entity Framework Migrations - Fatal编程技术网

C# EF代码首次迁移+;多DbContext+;外键

C# EF代码首次迁移+;多DbContext+;外键,c#,asp.net,entity-framework,entity-framework-migrations,C#,Asp.net,Entity Framework,Entity Framework Migrations,我先用EF6代码构建一个Asp.Net应用程序。我创建了两个项目。(一个主项目和一个类库项目)。两个项目都有模型类和自己的DbContext类,但是两个项目共享相同的连接字符串和数据库 //Model from Project A public class Product { public int ProductId{get;set;} } //Model from Project B public class Invoice { public int InvoiceId{get

我先用EF6代码构建一个Asp.Net应用程序。我创建了两个项目。(一个主项目和一个类库项目)。两个项目都有模型类和自己的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
(外键约束)

问题

  • 在项目A中执行了代码第一次迁移:迁移在没有问题的情况下执行
  • 在项目B中执行了代码首次迁移:错误
数据库中已存在名为“Product”的对象

//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
}
在为在数据库中创建表产品的项目A执行迁移时出现,之后在为项目B执行迁移时出现,EF尝试再次创建表产品

我在中读了很多文章,但还没有找到任何解决方案。 我如何解决这个问题?有人能帮我提供解决方案吗

附言:我从BaseContext类继承项目上下文类,BaseContext类从DbContext类继承


我已经在每个项目中启用了自动迁移。

也许可以将您的EF代码移动到第三个项目。迁移将发生在该项目中。然后项目A和项目B获得对项目数据的引用。没有双重迁移。@Jasen我不想这样做,因为我必须保持一些标准。将来,我将添加更多子项目。请参阅。转到她提到的“uber模型”部分,它涵盖了所有内容。@SteveGreene我的ContextClass是从基类继承而来的。这对我有用吗?你能举个例子吗?