这种关系如何映射到EDM实体?

时间:2011-11-03 15:17:22

标签: c# visual-studio-2010 entity-framework

我正在使用VS2010(.NET 4)中的实体数据模型开发一个带有MySQL后端的C#WPF应用程序。我有以下简单的测试数据库模式(暂时忽略StudentCourse.Grade):

enter image description here

通过连接表将学生分配到具有多对多关系的课程。在EDM中,这表示为由映射到连接表的关联链接的两个实体:

enter image description here

到目前为止一切顺利。 现在让我们说每个学生获得他/她所学的每门课程的最终成绩,我将其存储在StudentCourse表中作为成绩。我的问题在某种程度上得到了EDM的成绩。我已经尝试创建一个映射到StudentCourse表的新StudentCourse实体,但它被设置为只读,因为它没有id。向表中添加id会导致Visual Studio发出警告,因为id字段未映射到关联中(我根本不理解)。

在EDM中如何映射这样的关系?如果需要,我愿意改变数据库模式。

编辑回复Ucodia: 我不知道。对于UI来说,学生或课程应该可以轻松获得成绩。我愿意接受建议。

3 个答案:

答案 0 :(得分:0)

为什么不将Grade存储在Course实体上?

答案 1 :(得分:0)

显然,您最关心的是使用您在EDM设计器中设计的模型。如果只有对象模型对您很重要,无论数据库是什么样的,那么我建议您查看EF Code First。

看一下这篇文章:EF Code First Walkthrough

答案 2 :(得分:0)

您需要在链接表中添加成绩并删除多对多关系。然后从数据库重新生成模型。您会发现StudentCourse表将显示在EDM中。当链接表中有其他字段时,链接表将出现在模型中。