Linq:选择属性集合 [英] Linq: select property collection

查看:118
本文介绍了Linq:选择属性集合的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个类:

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

我使用Nhibernate LINQ。如果我想得到由Persan.Name过滤的订单的总和,我这样做:

$ $ $ $ $ $ $ c $ var结果=(从人in personRepository 。
from 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;


I have two classes:

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;}
}

I use Nhibernate Linq. If I want to get total sum of orders filtering by Persan.Name I do this:

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

How can I do the same using fluent syntax?

解决方案

Try this:

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

If this solution throws an ArgumentNullException when there are no orders selected try this two step solution:

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

这篇关于Linq:选择属性集合的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆