-1
我有2個實體與一個多對多的關係:導演上下文中使用自定義命名的連接表的多對多實體關係
[Table("Student", Schema = "School")]
public class Student
{
public long ID { get; set; }
public virtual List<Teacher> Teachers { get; set; }
//...
}
[Table("Teacher", Schema = "School")]
public class Teacher
{
public long ID { get; set; }
public virtual List<Student> Students { get; set; }
//...
}
我流利的API中指定如何構建連接表作爲例如:
public StudentMap(string schema)
{
//Where schema = "School"
HasMany(p => p.Teachers)
.WithMany(p => p.Students)
.Map(m =>
{
m.ToTable("StudentsTeachers", schema);
m.MapLeftKey("Student_ID");
m.MapRightKey("Teacher_ID");
});
}
然而,當我去訪問學生的教師導航對象,則默認爲EF約定,而不是我所指定的連接表。我怎麼去指定SchoolContext
我們應該看School.StudentsTeachers
表而不是dbo.StudentTeachers
?
問題不在於指定連接表或生成多對多關係。那些工作正常。嘗試使用實體時出現問題,我需要一種方法來指定關係應該使用我指定的Join表,而不是EF命名約定。如上所示,我可以通過使用表格屬性來解決與EF使用其約定相類似的問題。現在我正在尋找除與問候多對多的等效答案加入該表存在,但並沒有一個明確的模型
的可能的複製[如何爲多對多關係表指定模式?](http://stackoverflow.com/questions/17113541/how-to-specify-a-schema-for-a-many-to-many-relationship -表) –