【问题标题】:Adding related entities添加相关实体
【发布时间】:2012-09-20 17:42:29
【问题描述】:

我有这两张桌子,

Student
(Id, Name, DOB)
School
(Id, name)

Table 3
(student.Id, School.Id, expiryDate) 

我需要添加新学生、新学校并为表 3) 创建新记录

有没有办法通过实体框架做到这一点?

【问题讨论】:

  • 到目前为止你得到了什么?模型(代码优先?),第一次尝试,失败?更好的细节 = 更好的答案。
  • 好吧,我不知道从哪里开始,我需要添加学生和学校,然后使用 studentId 创建第三张表。
  • 我最需要的是学生和课程的新 ID,所以我可以添加新的第三张桌子
  • @Gert 作业标签已弃用,请停止使用。

标签: asp.net-mvc entity-framework entity-framework-4 asp.net-4.0


【解决方案1】:

假设您在 Entity Framework 中有一个从数据库生成的模型。如果是这样,它应该显示三个类,StudentSchool 和联结表“表 3”,可能是 StudentSchool,可能带有导航属性 StudentSchool.SchoolStudentSchool.Student

顺便说一句,如果您的“表 3”只有两个键值而不是 expiryDate,则 EF 将仅映射学校和学生之间的纯多对多关联(School.StudentsStudent.Schools )。

您可以只创建三个对象SchoolStudentStudentSchool,设置后者的导航属性,保存,EF 将找出正确的插入顺序并设置外键。

(另一个假设:您的表将标识列作为主键)。

【讨论】:

    【解决方案2】:

    您所描述的称为多对多关系。谷歌搜索“多对多实体框架”将带回您需要的结果。这里只是一个例子。

    http://www.codeproject.com/Articles/234606/Creating-a-Many-To-Many-Mapping-Using-Code-First

    【讨论】:

    • 正如@GertArnold 在上面评论的那样,更好的细节=更好的答案。在这种情况下,您现在拥有搜索所需答案所需的术语。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    • 2021-05-03
    • 1970-01-01
    • 2018-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多