实际中会经常出现同一进程中多次操作同一表,但ef默认的状态跟踪会限制这种操作,并且会降低性能,这种情况可使用AsNoTracking()
return db.Set<T>().Where(whereLambda).AsNoTracking().ToList();
但使用AsNoTracking需要注意,跟踪取消后想再用这个model去做其他操作就不行了,需要重新new新的moedl去处理,相当于重新发起新的sql语句请求
实际中会经常出现同一进程中多次操作同一表,但ef默认的状态跟踪会限制这种操作,并且会降低性能,这种情况可使用AsNoTracking()
return db.Set<T>().Where(whereLambda).AsNoTracking().ToList();
但使用AsNoTracking需要注意,跟踪取消后想再用这个model去做其他操作就不行了,需要重新new新的moedl去处理,相当于重新发起新的sql语句请求