实体框架设计器不会添加表

时间:2011-11-15 21:50:17

标签: entity-framework

我有一个名为ZipCodes的简单表,其中包含ZipCode,City和State。我创建一个新的类库项目,向项目添加一个ADO.NET实体数据模型,从数据库中选择ZipCodes表,选择连接字符串,选中ZipCodes表旁边的框,然后单击“完成”,它将生成edmx和Designer.cs文件......但没有ZipCodes。表定义不在设计器屏幕上,并且不在.cs文件中。怎么会这样?

3 个答案:

答案 0 :(得分:19)

埋在edmx文件中的是评论:

生成过程中发现的错误:       警告6013:表/视图' Common.dbo.ZipCodes'没有定义主键,也无法推断出有效的主键。此表/视图已被排除。要使用该实体,您需要检查您的架构,添加正确的密钥并取消注释。

答案 1 :(得分:6)

我有同样的问题。但缺少PK不是问题(我能够添加其他没有PK的表)问题是至少有一列不应该允许null,在这种情况下,null无处不在

答案 2 :(得分:0)

右键单击EDMX文件。 选择“打开方式...”

选择您喜欢的文本编辑器,最好是处理XML的文本编辑器。

找到XML

<EntityType Name="TableNameYouNeedToRefresh">
...
</EntityType>

然后将其删除。

也删除:

<EntitySet Name="TableNameYouNeedToRefresh" EntityType="Self.TableNameYouNeedToRefresh" Schema="SchemaOfTableYouNeedToRefresh" store:Type="Tables" />

现在保存并关闭文件。 在VS的EDMX视图中再次打开该图。现在,您可以再次添加表。 您应该根据需要重新创建模型。

当然可以正确创建数据库表。