EF4 Code FirstでGuidをPKとして使用する 質問する

EF4 Code FirstでGuidをPKとして使用する 質問する

次のクラスとテーブルがあります:

public class Foo
{
public Guid Id {get;set;}
public string Name {get;set;}   
}

create table Foo
(
id uniqueidentifier primary KEY DEFAULT (newsequentialid()),
name nvarchar(255)
)

問題は、新しいfooを保存しようとすると、最初のfooが0000-000-00 ... idになり、2番目のfooも0000-000-00 ... idになるため、制約例外が発生することです。

誰か修正方法を知っていますか?

ベストアンサー1

Identity StoreGeneratedPatternを設定しましたか?メソッド
で設定できますOnModelCreating:

modelBuilder.Entity<Foo>().Property(o => o.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);

または DataAnnotation 属性を使用します:

public class Foo {
  [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
  public Guid Id {get;set;}
  public string Name {get;set;}
}

おすすめ記事