2
之間的多重關係,我有Person
和Course
實體多重關係:配置實體
public class Course
{
public int CourseID { get; set; }
public virtual Person Leader { get; set; }
public virtual ICollection<Person> Teachers { get; set; }
public virtual Person CreatedBy { get; set; }
public virtual Person UpdatedBy { get; set; }
...
}
public class Person
{
public int PersonID { get; set; }
public virtual ICollection<Course> CoursesCreated { get; set; }
public virtual ICollection<Course> CoursesUpdated { get; set; }
public virtual ICollection<Course> CoursesLead { get; set; }
public virtual ICollection<Course> CoursesTutored { get; set; }
...
}
我有以下映射:
modelBuilder.Entity<Course>().HasMany(x => x.Tutors)
.WithMany(p => p.CoursesTutored)
.Map(x =>
{
x.MapLeftKey("PersonID");
x.MapRightKey("CourseID");
x.ToTable("Course_Tutors");
});
這工作,因爲它建立了Course_Tutors
表以及如提供Leader_PersonID
,CreatedBy_PersonID
和UpdatedBy_PersonID
的課程表。
但是,它還在課程表中創建了三個額外的Person
列:Person_PersonID1
,Person_PersonID2
,Person_PersonID3
。
有人能告訴我如何擺脫這些?我假設我的映射需要更多的工作。
我認爲這會做的工作,但它給我以下錯誤:類型Course_UpdatedBy沒有命名空間StudentProject.EFRepository(別名=自我)定義 – James 2012-01-10 09:54:10
@詹姆斯您是否正確包括所有這些映射?您是否使用先前創建的數據庫結構和新的映射?有沒有其他的屬性,你還沒有映射? – Eranga 2012-01-10 10:39:45
我現在得到一個「不允許的循環引用。[Constraint name = Course_Tutors_Target]」。如此接近解決這個問題! – James 2012-01-10 11:09:19