摘要

在使用ef做查询优化的时候我们会用到AsNoTracking方法,但如果不引入命名空间,你就会出现不包含“AsNoTracking”的定义的错误。

解决办法

引入命名空间:System.Data.Entity

AsNoTracking是对IQueryable的扩展,看它的定义就可以知道,代码片段如下:

  //
// 摘要:
// Returns a new query where the entities returned will not be cached in the
// System.Data.Entity.DbContext or System.Data.Entity.Core.Objects.ObjectContext.
// This method works by calling the AsNoTracking method of the underlying query
// object. If the underlying query object does not have an AsNoTracking method,
// then calling this method will have no affect.
//
// 参数:
// source:
// The source query.
//
// 类型参数:
// T:
// The element type.
//
// 返回结果:
// A new query with NoTracking applied, or the source query if NoTracking is
// not supported.
public static IQueryable<T> AsNoTracking<T>(this IQueryable<T> source) where T : class;
  //
// 摘要:
// Returns a new query where the entities returned will not be cached in the
// System.Data.Entity.DbContext or System.Data.Entity.Core.Objects.ObjectContext.
// This method works by calling the AsNoTracking method of the underlying query
// object. If the underlying query object does not have an AsNoTracking method,
// then calling this method will have no affect.
//
// 参数:
// source:
// The source query.
//
// 返回结果:
// A new query with NoTracking applied, or the source query if NoTracking is
// not supported.
public static IQueryable AsNoTracking(this IQueryable source);
05-08 08:02