【发布时间】:2023-03-21 19:11:02
【问题描述】:
如何实现此功能,例如:
UPDATE BlogSite
SET PostCount = PostCount + 1
WHERE BlogId = @BlogId
基于实体框架 3.1 (MySQL)
【问题讨论】:
标签: .net-core ef-core-3.1
如何实现此功能,例如:
UPDATE BlogSite
SET PostCount = PostCount + 1
WHERE BlogId = @BlogId
基于实体框架 3.1 (MySQL)
【问题讨论】:
标签: .net-core ef-core-3.1
除了@sadullah 的回答,
为了使其具有原子性和高性能,我建议您将其包装为事务,因为您有两个数据库操作(选择、更新)。此外,您可能还需要考虑使用 efcore 函数的异步版本。
using (var transaction = await _yourDbContext.Database.BeginTransactionAsync())
{
var entry = await _yourDbContext.BlogSite.FindAsync(*);
entry.PostCount++;
await _yourDbContext.SaveChangesAsync();
await transaction.CommitAsync();
}
【讨论】:
UpdateFromQuery 方法下使用什么方法来处理这个问题。请参阅:github.com/zzzprojects/EntityFramework-Extensions/tree/master/…)
// I assume your DBContext object is _db.
var blogSite=_db.BlogSite.Find(BlogId);
blogSite.PostCount++;
_db.SaveChanges();
【讨论】: