Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.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
C# 财产';StoreGeneratedPattern';设置为';计算';不支持。使用';身份';图案_C#_.net_Entity Framework_Composite Primary Key_Hashbytes - Fatal编程技术网

C# 财产';StoreGeneratedPattern';设置为';计算';不支持。使用';身份';图案

C# 财产';StoreGeneratedPattern';设置为';计算';不支持。使用';身份';图案,c#,.net,entity-framework,composite-primary-key,hashbytes,C#,.net,Entity Framework,Composite Primary Key,Hashbytes,我使用实体框架数据库优先的方法 我有一个表,上面有复合主键 ID(整数,标识增量), HashKey(二进制)使用sql hashbytes基于多个列自动生成 下面是EF列映射 ID storeGeneratedPattern=“Identity”和 hashkey(二进制)storeGeneratedPattern=“Computed” 当我尝试使用EF save changes方法保存时,它会抛出下面的异常 “不支持对主键列的属性'StoreGeneratedPattern'设置为'Comp

我使用实体框架数据库优先的方法

我有一个表,上面有复合主键 ID(整数,标识增量), HashKey(二进制)使用sql hashbytes基于多个列自动生成

下面是EF列映射

ID storeGeneratedPattern=“Identity”和 hashkey(二进制)storeGeneratedPattern=“Computed”

当我尝试使用EF save changes方法保存时,它会抛出下面的异常

“不支持对主键列的属性'StoreGeneratedPattern'设置为'Computed'的表进行修改。请改用'Identity'模式。键列:'HashKey'。表”

我在这些列上应用了复合主键(Id,Hashkey),以加快搜索速度,因为它包含集群索引。但不确定EF是否支持这一点

我看到了下面的链接。但我不确定解决办法


任何人都可以帮助解决这个问题。

'Computed'表示EF希望SQL在每次插入/更新后生成值。因此,它成为PK的一部分是没有意义的

您只需将标识保留为PK,仍然可以创建一个包含列(id、hash)的聚集索引


话虽如此,在聚集索引中包含计算列也是没有意义的。每次更改计算列时,整个行都需要移动到新位置。

'computed'表示EF希望SQL在每次插入/更新后生成值。因此,它成为PK的一部分是没有意义的

您只需将标识保留为PK,仍然可以创建一个包含列(id、hash)的聚集索引

话虽如此,在聚集索引中包含计算列也是没有意义的。每次更改计算列时,都需要将整行移动到新位置