Я использую Entity Framework v4 для небольшого проекта. Обычно я использую NHibernate. Моя проблема в том, что у меня случайно был код, который добавил объект, который уже был сохранен в коллекцию контекста БД, и когда я сделал 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();