2

かなり長いlinqクエリがあり、すべてが正常に機能します。しかし、最終的な結合では、ログのあるテーブルで内部結合を実行しています。ログは50を超えるレコードを返しますが、最新のレコードが必要です。

これが例です

var tst = from w in context.storage
          join p in context.products on w.id equals p.wid
          join l in context.logger on p.id equals l.pid
          select new
          {
              storageid = w.id,
              productid = p.id
              productname = p.name
              bought = l.when
          };

つまり、何が起こるかを簡単に説明すると、各製品は保管センターに保管され、その製品が購入されたときのログがあります。100回購入された場合、ロガーには100個のレコードがあります。

したがって、現在、productid = 5に対して50レコードが返されます...なぜ..50回購入されたのに、1レコードしか必要ないため、ロガーからの最新の日時のみが必要です。

誰か助けてもらえますか?私は少し立ち往生しています。

4

2 に答える 2

5

result.Distinct(x => x.Prop)一意のエントリのみを取得するために使用します

result.Max(x => x.Prop)最新の日付Min()を取得し、最も早い日付を取得するために使用します。

于 2012-06-14T06:46:19.710 に答える