我有两节课:
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(使用前将#替换为@)