我遇到了代码第一实体模型的问题,而我正试图解决如何修复它的问题。
在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识别出预期的架构,同时继续引用模型?
答案 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
的内容 编辑:我提到它可以在多个工厂生产,因为我提到它可以在多个工厂制造