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