0

ほとんどの場合、単純な Users テーブルを持つアプリケーションがあります。PK、UserID は Guid です。最初にEFコードを使用していますが、次のコードですべて問題ありません。

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid UserID { get; set; }

ただし、アプリケーションのある時点で、実際に Guid を強制したいと考えています。これは特殊なケースであり、この 1 つのコード ブロックの外側では、他のすべての場所で期待どおりにデータベースから Guid を生成する必要があります。

私が書いた Initializer の Seed 関数で、ID をうまく挿入できることを知っています。この極端なケースで ID 値を挿入できるように、これらの条件を再現するにはどうすればよいですか?

4

1 に答える 1

1

自動生成された ID 挿入の代わりに... Guid を主キーとして使用し、デフォルト値を NewGuid() にするとどうなるでしょうか。そうすれば、Guid 値を指定しない場合、データベースによって生成されます。

SP不要。

編集:

または、自動生成された ID がない場合は、エンティティ自体が初期値を制御します。構築後に値を設定すればOKです。

問題のエンティティ クラスを少し変更するだけで、目的を達成できます。

    class MyEntity {
        public Guid EntityId { get; set; }

        public MyEntity() {
            EntityId = Guid.NewGuid();
        }
    }
于 2013-01-03T17:47:12.950 に答える