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

时间:2012-05-20 11:34:31

标签: c# visual-studio-2010 entity-framework entity-framework-4 linq-to-entities

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

概述
我做了一个EF模型,发现一个表(名为UserRoles)没有出现在EF模型图中,我试图通过“更新数据模型”添加它,但是向导没有向我显示要添加的表(好像已经添加了),我也尝试通过“更新数据模型”向导刷新模型,这没有帮助。

问题解释:
原始数据库图。
enter image description here
部分EF模型图
enter image description here
我尝试通过“更新数据模型”添加它 enter image description here

我尝试将EF diargram中的实体重命名为“UserRoles”,弹出一条错误消息。 enter image description here

P.S:我认为我已经很好地解决了这个问题,但请告诉我您可能需要的更多信息。

1 个答案:

答案 0 :(得分:3)

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

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

在User类中,您将拥有一个Roles列表,在Roles类中,您将拥有一个User列表。这代表了一个简单的多对多关系。

如果您的关系表中至少有另一个属性(“RelationName”字符串,对于--stupid - 示例),那么它将存在于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

要获得更多答案,只需谷歌“实体框架多对多”就可以做到这一点