我有一个关于. asnotracking()扩展的问题,因为这都是相当新的和相当令人困惑的。
我正在使用一个网站的每个请求上下文。
我的许多实体没有改变,所以不需要跟踪,但我有以下场景,我不确定什么将进入数据库,甚至在这种情况下它是否有区别。
以下是我目前正在做的事情:
context.Set<User>().AsNoTracking()
// Step 1) Get user
context.Set<User>()
// Step 2) Update user
这与上面相同,但从步骤1中删除.AsNoTracking():
context.Set<User>();
// Step 1) Get user
context.Set<User>()
// Step 2) Update user
步骤1和步骤2使用相同的上下文,但发生在不同的时间。我弄不明白的是是否有什么不同。由于第2步是一个更新,我猜无论如何都将击中数据库两次。
有人能告诉我有什么不同吗?