在EF5中我使用类似的东西来更新实体中的特定属性。
_context.ObjectStateManager.GetObjectStateEntry(entityObj).SetModifiedProperty("Password");
如何在EF 6中执行此操作?我用它来更新EF 6中的实体。
_context.Entry(existing).CurrentValues.SetValues(updated);
我试图实现这样的目标:
foreach (var property in properties)//List<String> properties
{
_context.ObjectStateManager.GetObjectStateEntry(entityObj).SetModifiedProperty(property);
}
答案 0 :(得分:1)
在EF6中,they've modified that a little bit。这就是您的新来电转到set a property's value的方式。
_context.Entry(existing).Property(e => e.Password).CurrentValue = "Password1";
如果你有一个要更改的属性的字符串值,那么就会有一个单独的重载。
_context.Entry(existing).Property("Password").CurrentValue = "Password1";
答案 1 :(得分:0)
我用它来修改我识别的属性
public TObject Update(TObject entityObj, List<String> properties)
{
var entities = _context.Set<TObject>().Attach(entityObj);
foreach (var property in properties)
{
_context.Entry(entities).Property(property).IsModified = true;
}
_context.SaveChanges();
return entityObj;
}