.net core 如何选择&;使用EF Core 3.1更新单个字段

.net core 如何选择&;使用EF Core 3.1更新单个字段,.net-core,ef-core-3.1,.net Core,Ef Core 3.1,如何实现此功能,如: UPDATE BlogSite SET PostCount = PostCount + 1 WHERE BlogId = @BlogId 基于entity framework 3.1(MySQL)以及@sadullah的答案 为了使它具有原子性和性能,我建议您通过事务来包装它,因为您有两个db操作(select、update)。而且,您可能需要考虑使用EFCULL函数的异步版本。 使用(var transaction=await\u yourDbContext.Datab

如何实现此功能,如:

UPDATE BlogSite
SET PostCount = PostCount + 1
WHERE BlogId = @BlogId

基于entity framework 3.1(MySQL)

以及@sadullah的答案

为了使它具有原子性和性能,我建议您通过事务来包装它,因为您有两个db操作(select、update)。而且,您可能需要考虑使用EFCULL函数的异步版本。
使用(var transaction=await\u yourDbContext.Database.BeginTransactionAsync())
{
var entry=await_yourDbContext.BlogSite.FindAsync(*);
条目.PostCount++;
等待_yourDbContext.saveChangesSync();
wait transaction.CommitAsync();
}

是的,这是我目前的解决方案,但在单行代码中是否有更简单的方法。e、 g.:db.Set().Where(u=>u.id==1).UpdateFromQuery(x=>newpost{Count=x.Count+1});我曾经使用过这个软件包:Z.EntityFramework.Extensions.EFCoreYes,有一些方法可以通过使用第三方依赖项,用一行代码来处理它。我想展示如何在没有第三方依赖的情况下处理它。然而,您可以简单地以通用的方式包装上述方法,并且可以在您想要的任何地方使用。(顺便说一句,您提到的软件包拥有专有许可证,并且不是开源的,这意味着我们不知道他们在方法
UpdateFromQuery
下使用什么方法来处理此问题。请参见:)嗨,这是个坏消息,它不是开源的。你有其他类似的EF扩展吗?我不熟悉任何第三方EF扩展。然而,我相信你们可以在网上找到满足你们需要的东西。例如,查看此官方ms doc页面:此外,似乎在stackoverflow中,您不是唯一提出此问题的人:
// I assume your DBContext object is _db.

var blogSite=_db.BlogSite.Find(BlogId);
blogSite.PostCount++;
_db.SaveChanges();