0

データベース (SQLite) に存在しない新しい EntityObject を作成しています。オブジェクトのプロパティを設定し、それを親オブジェクトに結合します。EF が一時的な EntityKey を自動的に生成する必要があることを理解しているため、主キー プロパティを設定していません。次に、AddObject メソッドを使用して、新しく作成した EntityObject をコンテキストに追加し、その後、SaveChanges を呼び出します。

UpdateException: Abort due to constraint violation PRIMARY KEY must be unique. を受け取りました。主キー プロパティは常に 0 に設定されていますが、これはデータベースで次に使用可能な値である必要があります。データベースで主キー フィールドが自動インクリメントされていることを確認しました。

EF から一時的な EntityKey を取得するにはどうすればよいですか?

4

1 に答える 1

0

EF は一時キーを作成しません。一時キーは自分で生成する必要があります。

できること:[NotMapped]属性で装飾されたモデルにプロパティを追加します。オブジェクトの作成では、この値を値で初期化する必要があります。Guids問題を細かく解決します。を使用Guid.NewGuid()して一時キーを生成するだけです。

[NotMapped]フィールドがデータベースに永続化されないようにします。

于 2014-02-21T05:08:21.533 に答える