Linq to sql 如何在C中实现这一点

Linq to sql 如何在C中实现这一点,linq-to-sql,Linq To Sql,如何在C中有条件地聚合 类似于下面的vb代码: Dim movement = From item In dbo.VIEWITEMMOVEMENTs Where item.DATETRANSFERRED.Value.Date = Me.DateTimePicker1.Value.Date Group By item.DATETRANSFERRED.Value.Date, item.ITEMDESCRIPTION

如何在C中有条件地聚合

类似于下面的vb代码:

Dim movement = From item In dbo.VIEWITEMMOVEMENTs
               Where item.DATETRANSFERRED.Value.Date = Me.DateTimePicker1.Value.Date
               Group By item.DATETRANSFERRED.Value.Date, item.ITEMDESCRIPTION
               Into moved = Group, sold = Sum(item.QUANTITYSOLD), [IN] = Sum(If(item.QUANTITY < 0.0, 0.0, item.QUANTITY)), Out = Sum(If(item.QUANTITY > 0, 0, item.QUANTITY))
               Select ITEMDESCRIPTION, sold, [IN], Out Order By ITEMDESCRIPTION Ascending
Me.DataGridView1.DataSource = movement

如果您正试图转换该代码片段。你可以像这样使用转换器


希望这能有所帮助。

您尝试了什么?C实际上是一样的。这种问题并不适合这个网站。主题行也没什么用处——它是搜索证据。
 var result = (
                from item in dbo.VIEWITEMMOVEMENTs
                where item.DATETRANSFERRED.Value.Date == this.DateTimePicker1.Value.Date
                group item by new { item.DATETRANSFERRED.Value.Date, item.ITEMDESCRIPTION }
                into g
                select new
                {
                    g.Key.ITEMDESCRIPTION,
                    sold = g.Sum(x => x.QUANTITYSOLD),
                    IN = g.Sum(x => (x.QUANTITY <0 ? 0 : x.QUANTITY)),
                    Out = g.Sum(x => (x.QUANTITY > 0 ? 0 : x.QUANTITY))
                }
               ).OrderBy(d => d.ITEMDESCRIPTION);