我有一个关于.AsNoTracking()
扩展的问题,因为这一切都很新而且很混乱。
我正在为网站使用每个请求的上下文。
我的很多实体都没有改变,所以不需要跟踪,但我有以下情况,我不确定数据库的内容,甚至在这种情况下是否会有所作为。
这个例子是我目前正在做的:
context.Set<User>().AsNoTracking()
// Step 1) Get user
context.Set<User>()
// Step 2) Update user
这与上面相同,但从.AsNoTracking()
步骤 1 中删除:
context.Set<User>();
// Step 1) Get user
context.Set<User>()
// Step 2) Update user
步骤 1 和 2 使用相同的上下文,但发生在不同的时间。我无法解决的是是否有任何区别。由于第 2 步是一个更新,我猜无论如何都会两次访问数据库。
谁能告诉我有什么区别?