1

domainContext の EntitySet に格納されているデータがあり、その一部だけを選択したいと考えています。問題は、最高の日付の「新しい」ものだけでなく、すべての CageNames を取得していることです。

これはデータです:

SiteId CageId CageName Date
1 ,1 ,Lot1 ,'2011-05-05'
1 ,1 ,LotNew ,'2011-05-06'
1 ,2 ,Lot1 ,'2011-05-05'
1 ,2 ,LotNew ,' 2011-05-06'
1 ,3 ,ロット 1 ,'2011-05-05'
1 ,3 ,ロット新規 ,'2011-05-06'

したがって、リストされている CageId ごとに、日付が最も高いレコードの CageName を返したいと思います。これを行おうとしている私のコードは次のとおりです。

Dim CageName As Array

CageName = DomainContext.SiteCageDatas.Where(Function(h) h.SiteId = SiteId) _
      .Select(Function(x) x.CageName).Distinct.ToArray() 

しかし、これは私にすべてのCageNamesを与えるだけです..これを修正する方法はありますか? マインド; 私はVB.NETを使用しています

4

2 に答える 2

1

私は今これをやっていますが、それは何も返しません:(

 CageName = DomainContext.SiteCageDatas.GroupBy(Function(a) New With {a.SiteId, a.CageId}).Select(Function(a) a.OrderBy(Function(b) b.Date).LastOrDefault()).Where(Function(x) x.SiteId = SiteId).Select(Function(x) x.CageName).ToArray()
于 2011-05-06T09:05:51.657 に答える
1

これを試して:

DomainContext.SiteCageDatas.GroupBy(Function(x) x.CageId).Select(Function(x) x.OrderBy(Function(x) x.Date).LastOrDefault()).Where(Function(x) x IsNot Nothing).Select(Function(x) x.CageName).ToArray()
于 2011-05-05T14:17:49.653 に答える