我有一个名为ZipCodes的简单表,其中包含ZipCode,City和State。我创建一个新的类库项目,向项目添加一个ADO.NET实体数据模型,从数据库中选择ZipCodes表,选择连接字符串,选中ZipCodes表旁边的框,然后单击“完成”,它将生成edmx和Designer.cs文件......但没有ZipCodes。表定义不在设计器屏幕上,并且不在.cs文件中。怎么会这样?
答案 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视图中再次打开该图。现在,您可以再次添加表。 您应该根据需要重新创建模型。
当然可以正确创建数据库表。