如何根据另一个表的日期范围总数量?

时间:2017-12-11 03:03:28

标签: c# entity-framework linq lambda

如何根据另一个表中的quantity范围总计date

var items = entity.ItemHeaders.Where(x => x.date >= _dateFrom && x.date <= dateTo);
var tQty =  entity.ItemContents.Where(x => x.Warehouse == dto.Warehouse).Sum(x => x.Quantity);

问题是我不知道如何连接它们。

1 个答案:

答案 0 :(得分:1)

通过HeaderNumber加入实体并总计总数:

var total = (from header in entity.ItemHeaders
            from content in entity.ItemContents
            where header.date >= _dateFrom && header.date <= dateTo
               && content.Warehouse == dto.Warehouse
               && header.ID = content.HeaderNumber
            select content.Quantity).Sum();

假设您正在使用Entity Framework,如果您在ItemContent中为ItemHeader定义了导航属性,则会更容易。 e.g:

public virtual ItemHeader Header {get; set;}

然后查询可能是:

var total = entity.ItemContents
            .Where(x=> x.Header.date >= _dateFrom && x.Header.date <= dateTo 
                    && x.Warehouse == dto.Warehouse)
            .Sum(x => x.Quantity);