如何使用EF Core 3.1选择和更新单个字段

时间:2020-11-04 07:25:08

标签: .net-core ef-core-3.1

如何实现此功能,如:

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

基于实体框架3.1(MySQL)

2 个答案:

答案 0 :(得分:1)

// I assume your DBContext object is _db.

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

答案 1 :(得分:0)

除了@sadullah的答案,

为了使其具有原子性和高性能,我建议您通过事务包装它,因为您有两个数据库操作(选择,更新)。而且,您可能还需要考虑使用efcore函数的异步版本。

using (var transaction = await _yourDbContext.Database.BeginTransactionAsync())
{
    var entry = await _yourDbContext.BlogSite.FindAsync(*);
    entry.PostCount++;
    await _yourDbContext.SaveChangesAsync();

    await transaction.CommitAsync();
}