繁体   English   中英

根据导航属性值中的值选择LINQ

[英]Selecting in LINQ based on value in navigation property value

我有各种类别的车辆清单。

public IList<Vehicle> GetAllByCat(int compId, short catId)
{
    var _vehicles = Context.Vehicle
        .Where(i => 
            i.CompanyId == compId && 
            i.VehicleCategories.Any(o => o.VehicleCategoryId == catId))
        .ToList();

    return _vehicles;
}

但是它返回null(并且我在调试中得到了一个文本,说明_vehicles在当前上下文中不存在)

我已经广泛搜索了答案,但是没有找到任何帮助。 任何想法?

您必须先获取VehicleCategories,然后才能对其使用Any方法。 因此一种方法是使用即时加载功能获取相关类别,然后在其中进行搜索。

public IList<Vehicle> GetAllByCat(int compId, short catId)
{
    var _vehicles = Context.Vehicle
        .Include(x => x.VehicleCategories)
        .Where(i => 
            i.CompanyId == compId && 
            i.VehicleCategories.Any(o => o.VehicleCategoryId == catId))
        .ToList();

    return _vehicles;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM