8

クエリの結果を取得する必要があります。

 var query = from m in db.SoilSamplingSubJobs where m.order_id == id select m;

ICollectionとして準備して、次のようなものを持つことができます

 ICollection<SoilSamplingSubJob> subjobs

現時点では、私のニーズに適していないリストを作成しています。

query.ToList();

どうすればいいですか - それは query.ToIcollection() ですか?

4

3 に答える 3

14

リストは ICollection です。query.ToList() コードを次のように変更できます。

query.ToList() as ICollection<SoilSamplingSubJob>;

このクエリは関数の結果として返されるように聞こえます。この場合、Linq to SQL オブジェクトはデフォルトで接続されているため、データベース コンテキストをどこで開いたり閉じたりするかを管理する必要があることに注意してください。または、プログラムの残りの部分で使用するデータを保持する DTO (データ転送オブジェクト) を作成することもできます。これらのオブジェクトは、任意の方法でオブジェクト階層に適合させることができます。

これらの DTO をクエリの一部として作成することもできます。

var query = from m in db.SoilSamplingSubJobs where m.order_id == id
            select new SubJobDTO {
                OrderNumber = m.order_id
            };
return query.ToList() as ICollection<SubJobDTO>;
于 2010-05-30T19:04:41.817 に答える
1

query は IEnumerable を実装しているため、選択したコレクションのコンストラクターに渡すことができます。ICollection は、List<T>さまざまなパフォーマンス特性を持つ複数のクラス (ToList が返す を含む) によって実装されるインターフェイスです。

于 2010-05-30T15:38:23.467 に答える