首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实体框架5: RelationShips和附加/分离对象

实体框架5: RelationShips和附加/分离对象
EN

Stack Overflow用户
提问于 2013-05-28 15:31:54
回答 1查看 336关注 0票数 1

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

有两个表和一个映射表:

表中的数据:

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

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

但是,如果用户是在本地创建的(具有相同的Id但更改了名称)并附加到EF,则不会加载教室(studentLocal变量)。

同样的情况是,如果我尝试从EF加载学生-它会得到本地用户(student变量有Name="xx")并且没有教室:

在视图上,用户可以为学生更改教室,也可以更改学生属性,因此我需要更新学生表和合并StudentClassroom表。

  1. 在这种情况下,最好的处理方法是什么?我不想一次又一次地加载每个回发学生实体。
  2. 是否有办法为数据库中存在的本地创建的学生加载教室?
  3. 如何合并StudentClassroom记录?我只知道一个加载已存在的记录和新的记录,然后合并,然后要么删除所有这些记录,然后从新列表中重新创建,要么手动确定哪些记录应该删除/更新/创建。有没有更好的方法?
EN

回答 1

Stack Overflow用户

发布于 2013-05-29 04:01:10

您的问题是EF没有为您的模型创建正确的表。它应该创建3个类,而不是2个。原因可能是数据库中没有正确地设置关系。如果您正在使用Server,请尝试使用图表功能来检查您的关系,并且在设置模型之前正确设置主键。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16795939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档