【问题标题】:property 'StoreGeneratedPattern' set to 'Computed' are not supported. Use 'Identity' pattern不支持设置为 'Computed' 的属性“StoreGeneratedPattern”。使用“身份”模式
【发布时间】:2016-08-09 10:47:15
【问题描述】:

我正在使用实体框架数据库第一种方法

我有一个包含复合主键的表 ID(int,身份增量), HashKey(二进制)使用sql hashbytes基于多列自动生成。

下面是 EF 列映射

ID storeGeneratedPattern="Identity" 和 hashkey(binary) storeGeneratedPattern="Computed"。

当我尝试使用 EF 保存更改方法进行保存时,它会抛出异常。

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

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

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

Property with StoreGeneratedPattern set to Identity is not updted after SaveChanges()

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

【问题讨论】:

    标签: c# .net entity-framework composite-primary-key hashbytes


    【解决方案1】:

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

    您可以将标识保留为 PK,并仍然创建包含列(id、散列)的聚集索引。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-29
      • 1970-01-01
      • 2011-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-09
      • 2011-06-10
      相关资源
      最近更新 更多