我是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