剑轩

利用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


关于TNBLOG
TNBLOG,技术分享。技术交流:群号677373950
ICP备案 :渝ICP备18016597号-1
App store Android
精彩评论
{{item.replyName}}
{{item.content}}
{{item.time}}
{{subpj.replyName}}
@{{subpj.beReplyName}}{{subpj.content}}
{{subpj.time}}
猜你喜欢