Code First EF6奇怪的表格布局

时间:2017-06-09 14:25:13

标签: c# .net ef-code-first entity-framework-6

我遇到了代码第一实体模型的问题,而我正试图解决如何修复它的问题。

DB-First模型中,我会有以下内容:

CarModels
ID,
Name

CarFactory
ID
Name

CarFactoryModels
CarFactoryID
CarModelID

现在......我尝试使用代码优先在EF6中执行此操作,我的类是:

public class CarModel
{
public int CarModelId {get;set;}
public string Name {get;set;}
}

public class CarFactory
{
public int CarFactoryId {get;set;}
public string Name { get;set;}
public List<CarModels> ModelsMade {get;set;}
}

当我生成迁移并应用它时...数据库假定每个汽车工厂都有一个UNIQUE个人,架构如下所示:

Table Car Models
int ID AutoIncrement
varchar(255) Name
int CarFactoryID REFERENCES CarFactory_ID

显然,这是不正确的,因为模型是工厂独有的。

问题:

如何使代码优先EF6识别出预期的架构,同时继续引用模型?

1 个答案:

答案 0 :(得分:0)

您的 CarFactory 知道它有哪些型号,但您的 CarModel 没有对其工厂的引用。

public class CarModel
{
  public int CarModelId { get; set; }

  public string Name { get; set; }

  public virtual ICollection<CarFactory> CarFactory { get; set; }
}

public class CarFactory
{
  public int CarFactoryId { get; set; }

  public string Name { get; set; }

  public virtual ICollection<CarModel> ModelsMade { get; set; }
}

另请注意我是如何互相引用“虚拟”的。您已阅读有关here

的内容 编辑:我提到它可以在多个工厂生产,因为我提到它可以在多个工厂制造