1

私はEntity Frameworkデータベースを使用しています最初のアプローチ

ID(int、IDインクリメント)、SQLハッシュバイトを使用して複数の列に基づいて自動生成されたHashKey(バイナリ)の複合主キーを持つテーブルがあります。

以下はEF列マッピングです

ID storeGeneratedPattern="Identity" およびハッシュキー (バイナリ) storeGeneratedPattern="Computed"。

EF save changes メソッドを使用して保存しようとすると、以下の例外がスローされます。

「主キー列のプロパティ 'StoreGeneratedPattern' が 'Computed' に設定されているテーブルの変更はサポートされていません。代わりに 'Identity' パターンを使用してください。キー列: 'HashKey'.Table"

これらの列 (Id、Hashkey) に複合主キーを適用して、クラスター インデックスが含まれているため検索を高速化しました。ただし、EF がこれをサポートしているかどうかは不明です。

以下のリンクを見てきました。しかし、私は解決策について確信が持てません。

StoreGeneratedPattern が Identity に設定されているプロパティは、SaveChanges() の後で更新されません

誰でも問題を解決するためにこれを手伝ってもらえますか。

4

1 に答える 1

0

「計算済み」とは、EF が SQL が挿入/更新のたびに値を生成することを期待していることを意味します。したがって、それが PK の一部であることは意味がありません。

ID を PK のままにして、列 (ID、ハッシュ) を持つクラスター化インデックスを作成することができます。

そうは言っても、クラスター化インデックスに計算列を含めることも意味がありません。計算列が変更されるたびに、行全体を新しい位置に移動する必要があります。

于 2016-10-13T21:05:25.207 に答える