【问题标题】:Entity Framework Designer Won't add table实体框架设计器不会添加表
【发布时间】:2011-11-15 21:50:17
【问题描述】:

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

【问题讨论】:

  • 你的视觉工作室的输出窗口说什么?
  • @np-hard 我有同样的问题,对我来说没有输出也没有错误信息
  • 遇到同样的问题。输出窗口说要检查错误列表,但错误列表中没有错误。

标签: entity-framework


【解决方案1】:

edmx 文件中埋藏着一条注释:

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

【讨论】:

  • 可能想把这个作为问题的答案。
【解决方案2】:

我有同样的问题。但是缺少 PK 不是问题(我可以添加其他没有 PK 的表)问题是至少一列不应该允许为空,在这种情况下,任何地方都允许为空

【讨论】:

  • 这应该是正确的答案。因为我在其他表上没有 PK,所以 EF 添加了这些表。就像答案中提到的那样,表格至少需要 1 个必填字段。谢谢@mirosz
【解决方案3】:

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

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

查找 XML

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

然后删除它。

同时删除:

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

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

当然前提是您的数据库表已正确创建。

【讨论】:

    猜你喜欢
    • 2010-10-02
    • 1970-01-01
    • 2013-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多