0
を保存しないで、私は次のプロパティを含むモデルがあります:それが作成された後、私はオブジェクトを調べるとEntity Frameworkのは、データ
public Guid UniqueID
{
get { return Guid.NewGuid(); }
}
を、私は新しいGUIDが正しくUniqueID
フィールドのために作成されていることがわかります。
しかし、db.SaveChanges()
を呼び出すと、値が存在してもNULLをこのフィールドに挿入できないことを示すEntity Frameworkからエラーが返されます。
アイデア?
EDIT
private Guid _uniqueID = Guid.NewGuid();
public Guid UniqueID
{
get
{
if(_uniqueID == null){
_uniqueID = Guid.NewGuid();
}
return _uniqueID;
}
set
{
_uniqueID = value;
}
}
あなたは本当に新しいGUIDを取得したいのですか?_いつもあなたはそのプロパティにアクセスしていますか? –
はい、現時点では、データベースに複製されたオブジェクトが現時点で問題を抱えているため、現在は診断と修正を行っていますが、一時的な回避策が必要です。これは、私たちのような一時的な状況でレコードが一意であることを保証する最善の方法です。 – DaRoGa
オブジェクトのIDは変更すべきではありません。各オブジェクトに新しいIDが必要な場合は、新しいGUID値に初期化されるプライベートフィールドを作成します。プロパティにアクセスするたびに新しいIDを取得することは非常に奇妙で、発生している動作を引き起こしている可能性があります。 –