【发布时间】:2023-01-24 13:19:24
【问题描述】:
有时实体不会在范围内更新,但会提交插入。 我认为这个问题是由于隔离级别,添加到注册表中的查询数量。我还认为这可能是数据库中事物有效的顺序,因为暗示更改实体的端点调用发生得非常快,即使顺序正确。我不知道...
代码是这样的:
using (var scope = new TransactionScope())
{
var db = new Context().Database.ExecuteSqlCommand("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;")
var student= db.Students.SingleOrDefault(x => x.ID == 1);
var schoolName = "TestSchool";
db.School.Insert(new School{ Name = schoolName }); // IT ALWAYS WORKS
student.School = schoolName; //SOMETIMES THIS CHANGE DOESN'T WORK
db.Save();
scope.Complete();
}
有什么帮助吗?
它只发生在海量数据中,使测试变得困难
【问题讨论】:
-
student.School的类型是什么? -
这只是一个例子,在实际情况中是 INT。状态 = 1。
标签: c# sql entity-framework