2

次のc#コードをlinqを使用してsqlに変換する方法について誰かが私を助けてくれますか?linq to sqlを使用すると、実行速度が速くなりますか、それとも以下と同じですか?

foreach (var a in all)
    {
        for (int i = 0; i < a.Items.Length; i++)
        {
            if (a.Items[i].Item.TruckItemID.Equals(CarItem.CarItemID))
               {
                   allItems = a.Items[i];
               }
        }
    }
4

2 に答える 2

5

次のようなものが必要なようです。

allItems = all.SelectMany(a => a.Items)
              .Where(a => a.Item.TruckItemID.Equals(CarItem.CarItemID));

ただし、実行速度は向上しないことに注意してください。LINQは、クエリをほぼ同じコードに拡張します。

于 2012-08-02T15:56:10.090 に答える
1

Linq 2 Sqlは、LINQをSQLコマンドに変換し、データベース上で実行するデータベースアクセステクノロジです。データをメモリ内のコレクションに返します。forループは非常に原始的であるため、適切に使用すれば速度が向上する傾向があります。forループのネストを開始すると、データがO(n ^ 2)増加するにつれて、操作が指数関数的に遅くなります。

于 2012-08-02T15:59:09.667 に答える