Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework “Key”数据注释首先在数据库中做什么?_Entity Framework_Data Annotations_Dto_Data Transfer Objects - Fatal编程技术网

Entity framework “Key”数据注释首先在数据库中做什么?

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

我在Google上找到的所有东西都是先编码的,所以我想知道属性在数据库优先设计方面到底做了什么?我很好奇,因为很多实体都包含复合键,所以我一直在为各自的属性添加
Key
注释,但这真的有必要吗?如果是这样,我能从中获得什么?

如果您使用的是数据库优先工作流(即,您的解决方案中有一个.edmx文件)。然后,
属性将无效

但是,如果使用代码优先工作流映射到现有数据库,则
属性会告诉代码优先,该属性是实体主键的一部分


有关不同工作流的更多信息,请参阅此视频:

谢谢!我很好奇它是否提供了任何类型的错误/约束检查,但看起来它实际上只适用于代码优先的工作流。虽然键属性无效,但继承自ValidationAttribute(例如RequiredStringLength)的属性确实会在SaveChanges()上得到验证(适用于所有工作流)。