如何在不先加载实体的情况下更新实体

时间:2019-06-23 08:23:06

标签: asp.net-core entity-framework-core

我将EF core 2.2与asp.net core 2一起使用。我有一个典型的crud应用程序,用户在其中更新一些实体信息,然后必须首先通过id选择实体,然后更新所有属性并保存实体。这引入了一个我希望避免的额外选择查询。对于以前的EF版本,我已经读过一个解决方案,就是将修改后的实体附加到dbContext,并手动标记更改后的属性,然后保存它,而不必先从db获取它。但是,对于EF核心,我找不到任何答案,我想知道如何最好地做到这一点。

1 个答案:

答案 0 :(得分:0)

这应该给您一个想法(摘自EF6 documentation,但认为它对于EF核心同样适用)

var existingBlog = new Blog { BlogId = 1 };

using (var context = new BloggingContext())
{
    context.Blogs.Attach(existingBlog);

    // Make your changes...          

    context.SaveChanges();
}