2015-06-14 35 views
1

我有这样如何从物品清单中找到最短日期?

id | itemId | date | 
1 | a1  | 6/14/2015 
2 | a1  | 3/14/2015 
3 | a1  | 2/14/2015 
4 | b1  | 6/14/2015 
5 | c1  | 6/14/2015 

从这个表结构的表结构,我试图让所有拥有分钟日期不同的项目。例如,我想获得ID = 3,4和5

我曾尝试下面的代码,但我不能

var items = (from i in _db.Items 
      //where min(i.date) // doesn't seem right 
      group i by i.itemID 
      into d select new 
      { 
       iId = d.Key, 
      }).Distinct(); 

回答

-1
var items = from i in _db.Items 
      group i.date by i.itemID 
      into d select new { 
       iId = d.Key, iDate = d.Min() 
      }; 
+0

请让我知道你为什么这样投票吗? –

+0

您能否请[编辑]解释为什么这段代码回答这个问题?仅限代码答案[阻止](http://meta.stackexchange.com/q/148272/274165),因为他们没有教导解决方案。 (这篇文章被至少一个用户标记,大概是因为他们认为没有解释的答案应该被删除。这可能是downvote的原因,尽管我无法确定。) –

0

鉴于你的样本数据,我这样做:

var query = 
    from i in _db.Items 
    group i by i.itemId into gis 
    let lookup = gis.ToLookup(x => x.date, x => x.id) 
    from x in lookup[gis.Min(y => y.date)] 
    select x; 
+0

感谢您的回复。我怎样才能返回Id呢? – Lakhae