利用EF中的对象赋值CurrentValues.SetValues实现更新与添加
电脑版发表于:2020/3/1 13:22
有时候我们需要把一个其他对象的属性赋值到ef中的实体实现更新与添加,如果一个一个的去点出来赋值有点麻烦,就可以借助ef中的CurrentValues.SetValues方法,虽然我们可以使用反射来实现这个功能,既然ef自己提供了我们可以用一下
实现添加:
public int WriteArticleEvaluate(DTO_ArticleEvaluate_Token dTO_ArticleEvaluate_Token) { ArticleEvaluate articleEvaluate = new ArticleEvaluate(); //利用CurrentValues.SetValues方法给articleEvaluate对象复制 ef.Entry(articleEvaluate).CurrentValues.SetValues(dTO_ArticleEvaluate_Token); //指明articleEvaluate对象需要添加到数据库 ef.ArticleEvaluate.Add(articleEvaluate); return ef.SaveChanges(); }
实现更新:
public int UpdateAtricle(Article article) { //先把需要更新的从数据库查询出来 Article update = context.Article.Where(a => a.Id == article.Id).FirstOrDefault(); //把需要改变的字段赋值 context.Entry(update).CurrentValues.SetValues(article); return context.SaveChanges(); }
这个是先查询的方法更新,如果想要不查询的更新方法可以参考:
http://www.tnblog.net/aojiancc2/article/details/3278