表未映射到实体框架数据模型

Owa*_*shi 5 c# linq-to-entities entity-framework visual-studio-2010 entity-framework-4

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

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

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

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

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

Rap*_*aus 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 -对多关系.aspx

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

  • 不客气 !请记住:在使用 ORM 时要考虑对象,而不是 sql! (2认同)