实体框架AsNoTracking在GroupJoin中不起作用

时间:2015-10-19 10:05:36

标签: c# entity-framework entity-framework-6 outer-join

我有以下型号

public class Rate
{
    public Guid Id { get; set; } // PK
    public int SpecialId { get; set; }

    [Column(TypeName = "Money")]
    public decimal Rental { get; set; }
    public virtual Vehicle Vehicle { get; set; }
}

以下......

public class Vehicle
{
    public Guid Id { get; set; } // PK
    public int SpecialId { get; set; }

    public string Manufacturer { get; set; }
    public string Model { get; set; }
}

我正在使用GroupJoin使用以下查询在SpecialId上加入两个。

var query = _context.Vehicle.AsNoTracking()
        .GroupJoin(_context.Rate.AsNoTracking(),
        vehicle => vehicle.SpecialId,
        rate => rate.SpecialId,
        (v, r) => new VehicleQuery
        {
            Rates = r, 
            Vehicle = v
        }).AsNoTracking();

...并返回一个VehicleQuery模型(如下所示)

public class VehicleQuery
{
    public Vehicle Vehicle { get; set; }
    public IEnumerable<Rate> Rates { get; set; }
}

然而,即使我在Rate表和最终查询上有AsNoTracking,当我在调试器中查看结果时。

我可以看到仍在跟踪费率(DynamicProxies)。然而,车辆很好,显示为正常类,而不是动态代理/跟踪。

我甚至在VehicleQuery中尝试了r.ToList()但它仍然显示为DynamicProxie?

任何帮助表示感谢。

0 个答案:

没有答案