获取实体及其所有满足特定条件的子实体

Get entity with all its child which meet a certain condition

只是免责声明,这可能已经有人问过,但我真的不知道要搜索什么。

所以基本上我有以下模型:

public class Car
{
    public int Id { get; set; }

    public string UniqueName { get; set; }

    public List<Feature> Features { get; set; }
}

public class Feature
{
    public int Id { get; set; }

    public string Name { get; set; }

    public decimal Price { get; set; }
}

假设我想要一辆 UniqueName 等于 Bentle 的汽车,但只有 Features 的价格低于 100 美元。

我可以这样做:

var car = DbContext.Cars.FirstOrDefault(x=> x.UniqueName == "Bentle");
car.Features = car.Features.Where(x=> x.Price <= 100).ToList();

这确实有效,但在我看来有很多不必要的转换。有什么办法可以缩短这个查询吗?

一些要求:

虽然我在你的查询中没有看到任何不必要的转换,但如果你想在一行中执行你的请求,你可以尝试以下方法:

var car = DbContext.Cars.Where(x=> x.UniqueName == "Bentle").Select(car =>
          new Car()
          { 
            Features = car.Features.Where(x=> x.Price <= 100),
            .
            .
            /*here copy the remaining properties of car object*/
          }).FirstOrDefault();