2017-05-17 5 views
0

EF 6.Xコードを使用してAsp.Netアプリケーションを最初に開発します。 モデルの下に考えてみましょう:手動のProductIdを指定することができるはずEFコードファースト - 値が手動で設定されていない場合は、自動的にインクリメントされた値を割り当てます。

  1. 新しいレコードを作成:

    public class Product 
    { 
        public int ProductId {get;set;} 
        ... 
    } 
    

    今、私は、次の要件を達成する必要があります。

  2. ProductIdに値が設定されていない場合、自動インクリメント値 をレコードの保存時に自動的に設定する必要があります。

これに最適な解決策は何ですか? EFにはビルトインサポートはありますか?

これは混乱するでしょう: 現在の製品IDは100としましょう。ユーザーは製品ID 150を手動で設定して新しいレコードを作成しています。次の値101または151はどうなりますか?

答えて

1

HiLoジェネレータを使用してID値を生成することができます。 HiLoジェネレータは、特に分散データベース用のこの正確なシナリオを特に解決するために使用されます。ここでは、EF6でどのように達成できるかを示す記事があります。要するに

http://joseoncode.com/2011/03/23/hilo-for-entityframework/

、あなたが最後に生成されたID値と新しいアイテムが値がインクリメントされていることを保存するたびに含まれている別のシーケンステーブルを使用します。

+0

新しい用語を学んだHiLo generators :)ありがとう! Btwには、HiLo用のナゲットパッケージ/ライブラリがありますか? – Rahul

+0

ナゲットパッケージがあるかどうかわかりません。 BTWはリンクされたポスト、例としてソースコードを提供します。あなたはそれを試すことができます。 –

+0

はい、私は試してみます。ありがとう! – Rahul

関連する問題