小さなプロジェクトに Entity Framework v4 を使用しています。通常、NHibernate を使用します。私の問題は、DB コンテキストのコレクションに既に永続化されているオブジェクトを誤って追加したコードがあり、SaveChanges() を実行すると、EF がオブジェクトのコピーを作成し、新しい主キーを与えたことです。
これは便利ですが、私が望んでいたものではありません。その機能をオフにして、代わりに例外をスローする方法はありますか?
更新: コードが含まれるようになりました
public class CcUser
{
public int Id { get; set; }
[StringLength(50)]
public string TrackingId { get; set; }
[StringLength(50)]
public string MembershipGuid { get; set; }
public bool CookiesConfirmed { get; set; }
[StringLength(200)]
public string Email { get; set; }
public DateTime Modified { get; set; }
}
public class MyDbContext : DbContext
{
public DbSet<CcUser> Users { get; set; }
}
MyDbContext db = new MyDbContext();
var ccUser = db.Users.FirstOrDefault(u => u.TrackingId == id);
ccUser.Modified = DateTime.UtcNow;
db.Users.Add(ccUser);
db.SaveChanges();