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