我有点困惑如何在本地创建的对象中正确地处理多到多个关系。我准备了一个小例子来说明这个问题。
有两个表和一个映射表:

表中的数据:

实体框架创建了两个表和多到多的关系:

现在运行应用程序,加载单个学生(与ID=1和他的教室)。如果学生是从数据库中加载的,那么一切都很好,EF得到了2个教室:

但是,如果用户是在本地创建的(具有相同的Id但更改了名称)并附加到EF,则不会加载教室(studentLocal变量)。
同样的情况是,如果我尝试从EF加载学生-它会得到本地用户(student变量有Name="xx")并且没有教室:

在视图上,用户可以为学生更改教室,也可以更改学生属性,因此我需要更新学生表和合并StudentClassroom表。
发布于 2013-05-29 04:01:10
您的问题是EF没有为您的模型创建正确的表。它应该创建3个类,而不是2个。原因可能是数据库中没有正确地设置关系。如果您正在使用Server,请尝试使用图表功能来检查您的关系,并且在设置模型之前正确设置主键。
https://stackoverflow.com/questions/16795939
复制相似问题