返回

postgresql-通过EntityFrameworkCore从表中(检索和删除)条目的独立事务?

发布时间:2022-03-02 02:54:01 287
# 数据库# redis# 数据库

为了形象化——天真地说,如果我想完成这样一个操作,我可能会使用下面的代码。假设和dbContext。条目你属于那种类型DbContext(PostgreSQL)和DbSet<进入>分别地

var entry = await dbContext.Entries.FindAsync(key);
dbContext.Entries.Remove(entry);
await dbContext.SaveChangesAsync();
return entry;

然而,如果这段代码由两个或多个进程同时执行,我认为它可能不是完全孤立的(如果我错了,请纠正我)。例如,两个进程首先从第一行接收相同的条目,然后将其删除。尽管条目仍将被正确删除,但两个进程都会收到条目,这违反了隔离规则。

我想知道是否有可能使用EF Core来处理这种情况,从而使每个事务与其他事务完全隔离?

我从研究中发现的一种方法是用显式事务语句封装代码(docs)如果需要,改变隔离级别。然而,从docs属于DbSet。FindAsync(),则不会对数据库进行查询,如果;上下文正在跟踪给定的主键值&引用;我不确定DbSet。FindAsync()在明确规定的交易中,操作将按顺序考虑,如修改操作(例如。,DbSet。删除(),DbSet。添加())或者不是。

如果我的任何假设是错误的,请纠正我,并提前感谢!

编辑:抱歉提及;我用PostgreSQL对于EF核心。

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像