我有一个简单的测试表:
Code FromDate Name
---- ---------- -------
001 2012-11-30 bertie
001 2012-12-01 bert
002 2012-12-01 ernie
001 2012-12-02 bert
002 2012-12-02 ernie
001 2012-12-03 ernie
002 2012-12-04 bert
如果我在这张表中搜索,那么我希望代码中包含最新的'from date' 例如,搜索'ernie'应该给出结果:'001 / 2012-12-03 / ernie'
搜索'bert'应该得到结果:'002 / 2012-12-04 / bert'
如果我搜索'呃',我应该获得2条最新记录:'001 / 2012-12-03 / ernie'和'002 / 2012-12-04 / bert'
此查询无效:
from d in Data
where d.Name.ToUpper().Contains("ERNIE") && d.Code != null
group d by d.Code into g
select g.OrderByDescending(t => t.FromDate).FirstOrDefault()
这样做的最佳方式是什么?
结果还应该为我提供每个记录没有sql查询的名称。
更新
让问题更容易理解
答案 0 :(得分:0)
这有效:
var query = (from d in Data
group d by d.Code into g
select g.OrderByDescending(t => t.FromDate).FirstOrDefault());
query = query.Where(d => d.Name.ToUpper().Contains("BERT") && d.Code != null);
query.Dump();