首页 新闻 会员 周边

ASP.NET MVC EF查询之后修改值,为什么无改变,还是原始值。

0
悬赏园豆:5 [已关闭问题] 关闭于 2016-10-22 23:33

求教,为什么我修改的一个查询出来的对象的值,为什么在保存的时候,这个对象的值还是没有修改前的,这是什么情况,多谢各位大神指教谢谢。

EF
坚持的阳光的主页 坚持的阳光 | 初学一级 | 园豆:86
提问于:2016-09-24 15:10
< >
分享
所有回答(1)
0

attach 然后改为modify然后savechange或者直接用对应的实体类where查询:blogarticleservice.blogarticle.where()代替querywhere就可以了

KangKay | 园豆:206 (菜鸟二级) | 2016-09-25 10:18

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

不知道为什么我修改了值保存进去的对象的值为什么不变

支持(0) 反对(0) 坚持的阳光 | 园豆:86 (初学一级) | 2016-09-25 15:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册