我是EF新手,刚开始一个新项目。我目前有一个型号为BrandManagers
的主键和三个外键。我不明白我应该如何映射这些在DbContext
。在EF代码优先的同一对象上映射多个外键
public class BrandManager
{
public int BrandManagerId { get; set; }
[Required()]
public int PersonId { get; set; }
[Required()]
public int BrandId { get; set; }
[Required()]
public int CountryId { get; set; }
public virtual Person Person { get; set; }
public virtual Brand Brand { get; set; }
public virtual Country Country { get; set; }
}
我该如何映射这个?我已经尝试了下面,无济于事。
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Person>()
.HasRequired(x => x.Country);
modelBuilder.Entity<Brand>()
.HasMany(x => x.BrandManagers);
modelBuilder.Entity<BrandManager>()
.HasRequired(x => x.Person);
modelBuilder.Entity<BrandManager>()
.HasRequired(x => x.Brand);
modelBuilder.Entity<BrandManager>()
.HasRequired(x => x.Country);
base.OnModelCreating(modelBuilder);
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
我不断收到
表“人”引进国外KEY约束“FK_Person_Country_CountryId”可能会导致循环或多个级联路径。
我没有找到在ASP.NET网站上的介绍教程,这个具体问题的任何解决方案,也没有在这里SO关于这方面的任何问题,所以我开始觉得我误解EF的一些基本部分。
事情现在有道理。谢谢你的回答。 – sshow 2012-03-05 09:56:37