1

以下のスクリプトを SQL から LINQ に変換する方法を考え出そうとしています。どんな助けでも大歓迎です。

SELECT *
FROM
    [tableName]
WHERE
[MyDate] IN
    (SELECT
        MAX([MyDate])
   FROM
      [tableName]
   GROUP BY
      [MyID])

「IN」句セクションに相当するものが見つかりません。このフォーラムには既存の質問がありますが、DateTime の選択に関する質問はありません。

前もって感謝します。

4

2 に答える 2

1

「.Contains(..)」関数を使用できます。

var itemQuery = from cartItems in db.SalesOrderDetails
              where cartItems.SalesOrderID == 75144
              select cartItems.ProductID;

var myProducts = from p in db.Products
                where itemQuery.Contains(p.ProductID)
                select p;

2 回の往復のように見えますが、LINQ は IEnumerable がトリップしたときにのみクエリを構築するため、妥当なパフォーマンスが得られるはずです。

于 2012-05-10T16:22:21.960 に答える
0

Any()はあなたが探しているものだと思います:

var result = tableName.Where(x => 
                (from t in tableName
                group t by t.MyID into g
                where g.Max(y => y.MyDate) == x.MyDate
                select 1).Any())
于 2012-05-10T16:30:49.757 に答える