我正在创建新模型,我将让EF为其生成数据库。模型看起来像这样:
public class Model
{
public int Id { get; set; }
public string StyleNumber { get; set; }
public virtual IList<Metal> Metals { get; set; }
public virtual IList<ModelImage> Images { get; set; }
}
public class Metal
{
public int Id { get; set; }
public string Description { get; set; }
}
我希望Metal是一个带有两列的参考表,“Description”字段是唯一的。相反,EF使用引用模型ID的附加列创建Metal表。有没有一种简单的方法可以通过数据注释或流体API来改变行为?
答案 0 :(得分:3)
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Model>().HasMany(o => o.Metals).WithMany();
}
答案 1 :(得分:1)
Steven K的答案对于删除Metal表上的外键条目是正确的,但是它不会对Desctiption字段强制执行Unique要求。这不是他的错,但不幸的是,EF Code First还没有唯一的约束注释。