日期:2014-05-20  浏览次数:20758 次

LINQ表达式
请问下,这个语句对应的LINQ表达式应该怎么写
select  steelBladeID,steelBladeLength,InWHTime,UpUseTime as UpUseCycle
from steelBlade_info where InWHTime in (select min(InWHTime) from steelBlade_info where UseBeginTime is NULL group by steelBladeType+steelBladeLength)
order by steel,InWHTime asc

------解决方案--------------------

//注意结帖
var query=from si in steelBlade_info
          let ids=steelBlade_info.Where(s=>Nullable<DateTime>.Equals(s.UseBeginTime,null))
                  .GroupBy(s=>s.steelBladeType+s.steelBladeLength)
                  .Select(g=>g.Min(t=>t.InWHTime))
          where ids.Contains(si.InWHTime)
          orderby si.steel,si.InWHTime
          select new {...}

------解决方案--------------------
本帖最后由 q107770540 于 2012-02-27 17:06:43 编辑
我有几个过滤条件,现在想根据过滤条件要做个动态查询。其中的每一个子项我都写出来了,就是不知道怎么把这些整合在一起写个动态查询。一下是我写的一些子项:

var query =
                             from t in ds.Tables[0].AsEnumerable()
                             where Convert.ToInt32(t.Field<string>("gather_month")) <= b1
                             select t;
  var query2 =
                              from t in ds.Tables[0].AsEnumerable()
                              from o in query.AsEnumerable()
                              where t.Field<string>("user_no").Contains(o.Field<string>("user_no"))
                              orderby t.Field<string>("volpage"), t.Field<string>("user_no")
                                select t;

其他子项都和这个语句类似,就是不知道怎么把每个子项的结果集query2再次动态筛选。