【发布时间】:2015-06-10 20:10:16
【问题描述】:
从现有数据库生成代码优先类时,不会将 KeyAttribute 添加到表的主键属性中。
数据库中的所有表都有一个名为 Id 的单列 int PK,没有复合键
表单生成器和其他类通过反射使用此属性进行内部逻辑
我可以配置实体框架在重新生成模型类时将 KeyAttribute 添加到主键属性吗?
或
我必须通过 MetadataType 属性手动注释所有关键属性并更改我的代码以支持元数据类型?
谢谢
【问题讨论】:
-
你用什么工具生成代码?
-
使用visual studio,使用ado.net实体数据模型添加新项目对话框,选择'code first from database'选项
-
那么它会生成流畅的映射吗? (与以前的 EF 工具相反,它不适用)。
-
是的,Visual Studio code first 向导生成流畅的映射,但是 HasKey 方法永远不会被调用,它是主键映射方法
-
很奇怪。您的表真的有主键(不仅仅是唯一索引)吗?
标签: entity-framework attributes ef-code-first primary-key data-annotations