在linq查询中获取最小值

时间:2014-10-10 14:41:32

标签: linq

我正在使用Entity Framework进行数据库访问。

其中一个实体是产品,产品可以有很多条款。

这里是Term类:

public partial class Term
{
    public short ID { get; set; }
    public short ProductID { get; set; }
    public byte TermSegmentID { get; set; }
    public byte MinTerm { get; set; }
    public byte MaxTerm { get; set; }


    public virtual Product Product { get; set; }
}

选择了我所有产品的清单后,我一直在尝试返回MinTerm中的最小值 - 这是所有产品的最低值,而不是每个产品的最低值。

有人可以帮忙吗?这证明我的知识有限。

提前致谢。

2 个答案:

答案 0 :(得分:1)

这应该做你想要的:

byte minTerm = yourProducts.SelectMany(x => x.Terms).Min(x => x.MinTerm);

答案 1 :(得分:0)

Product是否有Terms属性?如果是这样,那很简单:

var minMinTerm = products.SelectMany(product => product.Terms)
                         .Min(term => term.MinTerm);

SelectMany方法"展平"一个序列 - 所以你最终得到一个单一的术语序列,逻辑上是产品中每个术语序列的串联。