故如虹,知恩;故如月,知明
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
欢迎加群交流技术

利用EF中的对象赋值CurrentValues.SetValues实现更新与添加

7454人阅读 2020/3/1 13:22 总访问:3839652 评论:0 收藏:0 手机
分类: .NET Core

有时候我们需要把一个其他对象的属性赋值到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


欢迎加群讨论技术,群:677373950(满了,可以加,但通过不了),2群:656732739

评价