求教,为什么我修改的一个查询出来的对象的值,为什么在保存的时候,这个对象的值还是没有修改前的,这是什么情况,多谢各位大神指教谢谢。
attach 然后改为modify然后savechange或者直接用对应的实体类where查询:blogarticleservice.blogarticle.where()代替querywhere就可以了
BlogArticleServive.QueryWhere()是我自己写的泛型方法,里面其实也是用where
public List<TEntity> QueryWhere(Expression<Func<TEntity, bool>> predicate)
{
return _dbSet.Where(predicate).ToList();
}
修改我是这样的
public void Edit(TEntity model, string[] propertys)
{
if (model == null)
{
throw new Exception("实体不能为空");
}
if (propertys.Any() == false)
{
throw new Exception("要修改的属性至少要有一个");
}
//将model追击到EF容器
DbEntityEntry entry = db.Entry(model);
entry.State = EntityState.Unchanged;
foreach (var item in propertys)
{
entry.Property(item).IsModified = true;
}
//关闭EF对于实体的合法性验证参数
db.Configuration.ValidateOnSaveEnabled = false;
}
不知道为什么我修改了值保存进去的对象的值为什么不变