我正在为一个小型项目使用实体框架v4。通常我使用NHibernate。我的问题是我无意中添加了一个代码,该代码添加了一个已经保存到数据库上下文集合的对象,并且当我执行SaveChanges()时,EF制作了该对象的副本,并为其提供了一个新的主键。实体框架添加现有项目导致克隆
虽然这很有用,但它不是我想要的。有没有办法关闭该功能,而是抛出异常?
UPDATE:CODE现在包括
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();
你可以显示代码引起的问题? – 2010-11-18 00:16:04
添加代码,谢谢。 – 2010-11-18 17:09:13