Entity framework 当AutoDetectChangesEnabled=false时更新相关数据
我正在尝试更新一个简单的模型:Entity framework 当AutoDetectChangesEnabled=false时更新相关数据,entity-framework,Entity Framework,我正在尝试更新一个简单的模型: public class DayOff { public int Id { get; set; } public List<User> Users { get; set; } public DayOff() { Users = new List<User>(); } } 公共课休息 { 公共int Id{get;se
public class DayOff
{
public int Id { get; set; }
public List<User> Users { get; set; }
public DayOff()
{
Users = new List<User>();
}
}
公共课休息
{
公共int Id{get;set;}
公共列表用户{get;set;}
公众假期
{
用户=新列表();
}
}
我的服务层是:
public void Update(DayOff dayOff, IEnumerable<int> users)
{
var dayOffToUpdate = _db.DayOff.Include("Users").Single(d => d.Id == dayOff.Id);
dayOffToUpdate.Users.Clear();
_db.Entry(dayOffToUpdate).CurrentValues.SetValues(dayOff);
dayOffToUpdate.Users = _db.User.Where(u => users.Contains(u.Id)).ToList();
foreach (var user in dayOffToUpdate.Users)
{
_db.Entry(user).State = EntityState.Modified;
}
_db.SaveChanges();
}
public void更新(DayOff DayOff,IEnumerable用户)
{
var dayOffToUpdate=_db.DayOff.Include(“用户”).Single(d=>d.Id==DayOff.Id);
dayoftoupdate.Users.Clear();
_db.Entry(dayOffToUpdate).CurrentValues.SetValues(dayOff);
dayoftoupdate.Users=_db.User.Where(u=>Users.Contains(u.Id)).ToList();
foreach(dayOffToUpdate.Users中的var用户)
{
_db.Entry(user.State=EntityState.Modified;
}
_db.SaveChanges();
}
但是它没有更新用户,所以我怎么能?为什么你说“跟踪关闭”?@GertArnold当我设置AutoDetectChangesEnabled=false时;我会更改它。我假设您确保
dayoftoupdate.Users
包含元素?