gpt4 book ai didi

ef-code-first - EF4.1 CodeFirst : Add field to join table

转载 作者:行者123 更新时间:2023-12-05 00:38:39 27 4
gpt4 key购买 nike

我正在使用 EF 4.1 RC 和 CodeFirst/POCO 通过代码构建我的数据库。

想象一下像教师-学生这样的多对多关系(一个老师可以有很多学生,一个学生可以有很多老师)。因此,我有两个 POCO:(1)老师和(2)学生。

当 EF 创建相应的表时,您最终会得到三个表:(1) 教师、(2) 学生和 (3) 一个额外的连接表。连接表正好包含两个字段:Teacher_ID 和 Student_ID。

我想知道我是否有机会在连接表中添加一个额外的字段,例如“成绩”(某位老师给某位老师的成绩)?

目前我不知道如何只用两个 POCO 来实现这一点。

所以我想我所能做的就是手动创建第三个 POCO(用于连接表),对吗?这肯定会奏效,但随后我会丢失一些不错的导航属性,例如 oneTeacher.Students.First() 等。这就是我仍在寻找另一种方式的主要原因。

最佳答案

这是正确的,不仅适用于 Code-first。如果您的连接表中有额外的字段,您会将其映射为一个实体。反之亦然,如果您想在连接表中添加一个额外的字段,您需要创建一个新实体并具有指向 Teacher 的零或一对多或一对多导航属性。和 Student实体。在任何情况下,您都无法轻松访问 Teacher.StudentsStudent.Teachers并且必须通过中间实体。

或者,您可以考虑对数据库结构进行不同的建模,并将额外信息提取到 Teacher 中。或 Student或第四个实体。但这完全取决于您的场景。

关于ef-code-first - EF4.1 CodeFirst : Add field to join table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5326744/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com