C# 财产';StoreGeneratedPattern';设置为';计算';不支持。使用';身份';图案
我使用实体框架数据库优先的方法 我有一个表,上面有复合主键 ID(整数,标识增量), HashKey(二进制)使用sql hashbytes基于多个列自动生成 下面是EF列映射 ID storeGeneratedPattern=“Identity”和 hashkey(二进制)storeGeneratedPattern=“Computed” 当我尝试使用EF save changes方法保存时,它会抛出下面的异常 “不支持对主键列的属性'StoreGeneratedPattern'设置为'Computed'的表进行修改。请改用'Identity'模式。键列:'HashKey'。表” 我在这些列上应用了复合主键(Id,Hashkey),以加快搜索速度,因为它包含集群索引。但不确定EF是否支持这一点 我看到了下面的链接。但我不确定解决办法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
任何人都可以帮助解决这个问题。'Computed'表示EF希望SQL在每次插入/更新后生成值。因此,它成为PK的一部分是没有意义的 您只需将标识保留为PK,仍然可以创建一个包含列(id、hash)的聚集索引
话虽如此,在聚集索引中包含计算列也是没有意义的。每次更改计算列时,整个行都需要移动到新位置。'computed'表示EF希望SQL在每次插入/更新后生成值。因此,它成为PK的一部分是没有意义的 您只需将标识保留为PK,仍然可以创建一个包含列(id、hash)的聚集索引 话虽如此,在聚集索引中包含计算列也是没有意义的。每次更改计算列时,都需要将整行移动到新位置