Linq:选择属性集合

2024-01-10

我有两节课:

public class Person
{
   public int Id{get;set;}
   public string Name{get;set;}
   public List<Order> Orders{get;set;}
}
public class Order
{
   public int Id{get;set;}
   public string Data{get;set;}
   public decimal Sum{get;set;}
}

我使用 Nhibernate Linq。如果我想获得按 Persan.Name 过滤的订单总数,我会这样做:

var result = (from person in personRepository.Query
             from order in person.Orders
             where person.Name.Contains("off")
             select order).Sum(order => order.Sum);

我怎样才能使用流畅的语法来做同样的事情?


尝试这个:

var result = personRepository.Query
    .Where(person => person.Name.Contains("off"))
    .SelectMany(person => person.Orders)
    .Sum(order => order.Sum);

如果此解决方案抛出ArgumentNullException当没有选择订单时,请尝试以下两步解决方案:

var orders = personRepository.Query
    .Where(person => person.Name.Contains("off"))
    .SelectMany(person => person.Orders);
var result = orders.Any()
    : orders.Sum(order => order.Sum)
    ? 0;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linq:选择属性集合 的相关文章

  • linq查询的问题

    我正在尝试使用 linq to NHibernate 使用 Fluent NHibernate 但我在 linq 查询方面遇到问题 每次我尝试执行它时 我都会收到以下消息 方法 get IsReadOnlyInitialized 类型 NH
  • 左外连接 - LINQ to Datatable

    我正在尝试使用 LINQ 在两个数据表上应用左外连接 当我尝试调试和查看结果变量中包含的数据时 我收到下面列出的异常 System ArgumentException 值不能为空 参数名称 行 Code private DataTable
  • 如何在 F# 中使用 LINQ 更新数据库中的表?

    我看过很多有关如何查询数据库的示例 但没有看到有关如何更新记录的示例 下面是我编写的用于检索表的简单代码 但有人可以解释一下如何修改字段 例如lastActiveDate 并更新数据库上的表 谢谢你 周日 open System open
  • 实体框架在不同的工作站上生成不同的查询

    我们在单个开发人员机器和一些客户端上遇到问题 单个 Linq 查询 生成两个不同的 SQL 查询 问题实际上是第二个查询有 firebird 不支持的 OUTER APPLY 语句 我们认为这不是代码问题 而是环境问题 但我会粘贴代码 li
  • 使用 MongoDB 和 ASP.NET MVC 进行分页的有效方法

    我们正在创建一个应用程序 MongoDB 作为数据库 我们正在使用MongoDB 的官方 C 驱动程序 http docs mongodb org ecosystem drivers csharp 我们有一个包含数千条记录的集合 我们想要创
  • 如何使用 C# 读取包含数组的 json 文件并对其执行 LINQ 查询? [复制]

    这个问题在这里已经有答案了 我是 C 中 json 的新手 我使用 newtonsoft json 我有一个包含数据 数组 的 json 文件 firstName Joyce lastName Huff isActive true age
  • 使用 LINQ 和 C# 的随机数组

    我在 MSDN 杂志上读到一篇关于使用LINQ 中的枚举类 http msdn microsoft com en us magazine cc700332 aspx生成随机数组 本文使用 VB NET 我不能立即确定 C 中的等效项是什么
  • 映射枚举列表

    我有一个名为 UserPermissions 的表 其中通过 userId 与用户表进行 FK 然后是一个用于枚举字符串值的字符串列 我看到的错误是 NHibernate MappingException 表 UserPermissions
  • C#:按枚举值排序/排序

    我有一个从 Linq2Sql 实现的 IEnumerable 我已经过滤掉了我想要的记录 现在我想根据选定的枚举对它们进行排序 public enum Sort Time Name Value public class LinqClass
  • 使用 linq 2 实体检查 where 子句的两个条件

    嗨 我有一个名为 产品 的表 其中包含列 product id prodcut name prodcut price values like 1200 2000 3000 100 prodcut desc category id 1 2 3
  • NHibernate 二级缓存与 NHibernate Linq Provider 1.0

    如何使用 NHibernate Linq Provider 1 0 启用 NHibernate 二级缓存 二级缓存似乎仅适用于 ICriteria 使用 是的 我终于解决了这个问题 public IQuerable
  • int -> int list 与类型 int -> IEnumerable<'a> 不兼容

    Given open System Linq 这是一个可以接受的表达方式 2 3 4 SelectMany fun n gt 1 n 但这不是 2 3 4 SelectMany fun n gt 1 n 错误消息显示 int gt int
  • Java 表达式树 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有相当于 net的 LINQ 下的表达式树JVM 我想实现一些类似 LINQ 的代码结构Scala
  • 仅使用扩展方法在 Linq 中进行漂亮、干净的交叉连接 [重复]

    这个问题在这里已经有答案了 可能的重复 使用扩展方法表示的嵌套 from LINQ 查询 https stackoverflow com questions 9115675 nested from linq query expressed
  • 如何获取 EF 中与组合(键/值)列表匹配的记录?

    我有一个数据库表 其中包含每个用户 年份组合的记录 如何使用 EF 和用户 ID 年份组合列表从数据库获取数据 组合示例 UserId Year 1 2015 1 2016 1 2018 12 2016 12 2019 3 2015 91
  • 使用 LINQ 获取二维数组的最大列数

    无论如何 有没有使用 LINQ 来获取二维数组每列的最大值 假设我有以下内容 var arrays new double 5 100 我想获得最大的arrays 0 arrays 1 arrays 4 如何使用LINQ来做呢 我可以使用这样
  • 将平面集合转换为层次集合的递归方法?

    我已经被这个问题困扰了几天 希望得到一些想法或帮助解决它 我有一个对象集合 public class Hierarchy public Hierarchy string iD string name int level string par
  • 选择 List 中整周没有休息日的记录 - C#

    我有一个Employee类定义如下 Employee public int Id get set public string Name get set public DateTime WorkDate get set public bool
  • 在 C# 中使用 LINQ 反转字典

    如何转换 Dictioanry
  • C# 抽象泛型方法

    C net 3 5 我正在尝试创建一个具有通用方法的基类 从它继承的类应该指定方法的类型 这样做的前提是创建管理过滤的类 所以我有 public abstract class FilterBase NEED Help Declaring t

随机推荐