私はこのクラスとテーブルを持っています:
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も保存されるため、制約例外が発生することです。
誰かが修正を知っていますか?
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;}
}
Devartのソリューションに基づいて構築しただけで、この問題が発生し、
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
データ注釈が機能しませんでした。この理由は、(コードの最初のチュートリアルの1つで提案されているように)GuidをIDとしてサポートしていないSqlServerCompactデータベースを使用していたためです。他の誰かがこの問題を抱えている場合に備えて、ここに投稿すると思っただけです。コンパクトデータベースではなくSqlServermdfを作成するように接続文字列を変更すると、完全に機能します。