我有点困惑如何在本地创建的对象中使用多对多关系。 我准备了一个小例子来证明这个问题。
有两个表和一个映射表:
表中的数据:
Entity Framework创建了两个表和多对多关系:
现在运行应用程序并加载单个学生(ID = 1和他的教室)。 如果学生从数据库加载,那么一切都很好,EF有2个教室:
但是如果用户是在本地创建的(具有相同的Id但更改了名称)并附加到EF,则不会加载教室(studentLocal
变量)。
如果我尝试从EF加载学生,情况相同 - 它会让本地用户(student
变量有Name="xx"
)而没有教室:
在视图上,用户可以更改学生的课堂以及更改学生属性,因此我需要更新学生表并合并StudentClassroom表。
答案 0 :(得分:0)
您的问题是EF没有为您的模型创建正确的表格。它应该创建3个类而不是2.可能不是因为你没有在数据库中正确设置关系。如果您使用的是SQL Server,请尝试使用图表功能检查您的关系,并在设置模型之前正确设置主键。