替代EF 6中的SetModifiedProperty

时间:2014-07-22 12:23:59

标签: c# entity-framework

在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);
            }

2 个答案:

答案 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;
        }