Entity framework “Key”数据注释首先在数据库中做什么?
我在Google上找到的所有东西都是先编码的,所以我想知道Entity framework “Key”数据注释首先在数据库中做什么?,entity-framework,data-annotations,dto,data-transfer-objects,Entity Framework,Data Annotations,Dto,Data Transfer Objects,我在Google上找到的所有东西都是先编码的,所以我想知道键属性在数据库优先设计方面到底做了什么?我很好奇,因为很多实体都包含复合键,所以我一直在为各自的属性添加Key注释,但这真的有必要吗?如果是这样,我能从中获得什么?如果您使用的是数据库优先工作流(即,您的解决方案中有一个.edmx文件)。然后,键属性将无效 但是,如果使用代码优先工作流映射到现有数据库,则键属性会告诉代码优先,该属性是实体主键的一部分 有关不同工作流的更多信息,请参阅此视频:谢谢!我很好奇它是否提供了任何类型的错误/约束检
键
属性在数据库优先设计方面到底做了什么?我很好奇,因为很多实体都包含复合键,所以我一直在为各自的属性添加Key
注释,但这真的有必要吗?如果是这样,我能从中获得什么?如果您使用的是数据库优先工作流(即,您的解决方案中有一个.edmx文件)。然后,键
属性将无效
但是,如果使用代码优先工作流映射到现有数据库,则键
属性会告诉代码优先,该属性是实体主键的一部分
有关不同工作流的更多信息,请参阅此视频:谢谢!我很好奇它是否提供了任何类型的错误/约束检查,但看起来它实际上只适用于代码优先的工作流。虽然键属性无效,但继承自
ValidationAttribute
(例如Required
和StringLength
)的属性确实会在SaveChanges()上得到验证(适用于所有工作流)。