我正在使用 Entity Framework 4 和 Database First 绑定,并且 EF 没有为我的一些表生成实体。我没有收到任何错误,无论我从设计图面上的“从数据库更新模型”弹出菜单中选择要生成的表多少次,模型中仍然缺少相同的表。
我在向导中没有错误。它们只是没有生成。有什么线索吗?
我正在使用 Entity Framework 4 和 Database First 绑定,并且 EF 没有为我的一些表生成实体。我没有收到任何错误,无论我从设计图面上的“从数据库更新模型”弹出菜单中选择要生成的表多少次,模型中仍然缺少相同的表。
我在向导中没有错误。它们只是没有生成。有什么线索吗?
EF 需要表上的主键。EF 不会映射无法找到或派生主键的表。如果所有列都可以为空,则不能假定主键。如果一个或多个列不可为空,EF 显然会为该表派生一个主键。
EF 将忽略没有主键的表。
我能想到的选项:
您是否选中了这些表格旁边的框?
您之前是否添加了它们,然后删除了它们的实体但保留了表的缓存?
如果是这样,您可以从实体浏览器窗口中删除它们并重新添加它们或手动添加实体并在映射窗口中定义它们映射到的表。
也许表被归类为关系而不是实体?
一种可能性是当您使用具有一些不同字段类型的表时,作为 SQL Server 中的层次结构。
实际上,在我的情况下,它不起作用,因为我使用 hierarchyid 字段作为主键,而 EF 不适用于此字段类型,因此它没有导入表,因为需要有效的 PK。
如果没有在 EF 上自动跳过的主键表,否则您将值固定为非空。