開発者が最初の作成後にコードの主キーを手動またはプログラムで更新できないようにするチェックの実装に問題があります。
partial class User
{
public User()
{
this.UserId = sGuid.NewSGuid(sGuidType.SequentialAtEnd);
}
partial void OnUserIdChanging(Guid value)
{
//throw if its an edit...
throw new DbEntityValidationException("Cannot mutate primary key");
}
}
これは、オブジェクトを編集/更新している場合は正常に機能しますが、実際には、最初から新しいエンティティを作成することはできません。この時点で、新しいエンティティか既存のエンティティかを確認する方法はありますか?
よろしくお願いします、ピート
アップデート:
典型的な私は投稿した後にいつも答えを見つけます-_-!あなたの答えの人に感謝します、彼らが有効な選択肢だったので、私はあなたの1人を正解としてマークします。
if (this.EntityState != System.Data.EntityState.Detached)
{
throw new DbEntityValidationException("Cannot mutate primary key");
}