c# - Linq - 子对象上的where子句

标签 c# linq

给定以下类:

public class Nation
{
  public string Name { get; set; }
  public IEnumerable<City> Cities { get; private set; }
}

public class City
{
  public string Name { get; set; }
}

假设Nation是聚合根,所以我只有一个 NationRepository而不是 CityRepository (因此 Nation 是 Linq 查询的起点)。澄清一下,我的起点是 IQueryable<Nation>对象。

我将如何编写返回 City 集合的查询?根据以下逻辑对象:

全选City Name 的实例以 'M' 开头,其父级 Nation的名字是'UK'?

最佳答案

您将执行以下操作:

var results = NationRepository.Where(n => n.Name == "UK")
                              .SelectMany(n => n.Cities)
                              .Where(c => c.Name.StartsWith("M"));

关于c# - Linq - 子对象上的where子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6762828/

相关文章:

c# - 在 .NET 中有什么比 SqlDataReader 更快的吗?

c# - 从数据表填充 Gridview

c# - 如何使用 C# 在未安装 Microsoft Office 的情况下将 .xls 文件转换为 .xlsx?

c# - LINQ 与跳过和采取

c# - NHibernate Query<T>、Get<T> 和 Load<T> 的区别

c# - 使用 DataTable 和 List<T> 加入和分组

c# - C# 中是否有一种简洁的方法(基于逻辑)分配一个或另一个引用?

c# - int ID 属于 List<int> 的 linq 查询

c# - 内联 LINQ 查询创建委托(delegate)实例的效率?

c# - 如何在 .NET Core 中使用 IUserIdProvider?