AsNoTracking()和Include

时间:2017-02-02 12:40:38

标签: c# entity-framework linq

我有一个Linq查询,用于获取实体及其某些导航属性。

filepath = '/tmp/' + key

我的问题是:

以上查询是否足以不跟踪context.MyEntity .AsNoTracking() .Include(i=> i.Nav1) .Include(i=> i.Nav2) .Where(x=> x.Prop1==1) .FirstOrDefault(); 或导航属性MyEntity& NAv1或者我必须为每个导航属性添加Nav2吗?

像这样:

AsNoTracking

1 个答案:

答案 0 :(得分:24)

在完成所有查询参数之后但在将数据移动到内存之前使用AsNoTracking。在此示例中,您需要:

context.MyEntity
    .Include(i=> i.Nav1)
    .Include(i=> i.Nav2)
    .Where(x=> x.Prop1==1)
    .AsNoTracking()
    .FirstOrDefault();

不会跟踪父实体的任何子对象。