4

嗨,我回来了另一个问题,我已经开始使用 EF,但我遇到了问题。

OverView:
我制作了一个 EF 模型,发现 EF 模型图中没有显示一个表(名为 UserRoles),我尝试通过“更新数据模型”添加它,但向导没有显示该表添加(好像已经添加),我还尝试通过“更新数据模型”向导刷新模型,但没有帮助。

问题解释:
原始数据库图。
在此处输入图像描述
部分 EF 模型图
在此处输入图像描述
我尝试通过“更新数据模型”添加它
在此处输入图像描述

我试图将 EF 图表中的实体重命名为“UserRoles”,弹出一条错误消息。 在此处输入图像描述

PS:我想我已经很好地提出了这个问题,但是请让我知道你可能需要的更多信息。

4

1 回答 1

3

好吧,您现在使用对象,不再使用 sql。

而使用 EF,多对多关系不需要特殊的“实体”,而是特定的“关系”。

在用户类中,您将拥有一个角色列表,在角色类中,您将拥有一个用户列表。这完美地代表了一个简单的多对多关系。

如果您的关系表中至少有一个其他属性(“RelationName”字符串,例如 - 愚蠢的 - 示例),那么它将存在于 EF 模型中......

编辑:不确定您需要什么:这只是“对象”方式。想想如果您不使用数据库,您将创建这些类的方式:您将在关系的每个部分中创建另一个列表。但是 Sql 不能这样做(你不能在数据库中有一个“列表”),所以 Sql 需要一个关系表。但是EF是ORM,所以是对象,不是sql。

编辑 2:

在 Code First 中创建关系的方式,但它非常明确 http://blogs.msdn.com/b/wriju/archive/2011/05/14/code-first-ef-4-1-building-many -to-many-relationship.aspx

如需更多答案,只需谷歌“实体框架多对多”即可解决问题

于 2012-05-20T11:41:13.027 回答