0

こんにちは、

複数のテーブルに参加し、DataRow (クエリによって返されるすべての行) で出力を取得するシナリオがあります。

SQL クエリ:

SELECT  Fr.InterCodeId   
        FROM    
        CodeShareInterline Fr,    
        Airline A,Zone Z   #
        WHERE    
        A.AirlineId = Fr.AirlineId   
        And Fr.ContractId=Z.ContractId

LINQ で結合を実行する方法は知っていますが、LINQ の select ステートメントですべての列 (行) を選択するにはどうすればよいですか。

4

2 に答える 2

0
var result = from fr in dataContext.CodeShareInterline
            from a in dataContext.AirLine
            from z in dataContext.Zone
            where a.AirlineId == fr.AirlineId && fr.ContractId == z.ContractId
            select new 
               {
                   Interline = fr,
                   AirLine = a,
                   Zone = z
               };

匿名型には必要なすべてのデータが含まれています。次の方法で 1 つの列に簡単にアクセスできます。

result.FirstOrDefault().Zone.SomeField
于 2011-03-23T09:35:48.223 に答える
0

これはテストされていませんが、これに近いものが動作するはずです。データ コンテキストが呼び出しコンテキストであると仮定します。これはあなたが上に持っているものの翻訳です。

var o = from fr in Context.CodeShareInterline
            join a from Context.Airline on a.AirlineId == fr.AirlineId 
            join z from Context.Zone on fr.ContactId == z.ContactId
            select fr.InterCodeId;

すべてのデータを選択する場合は、次のようにする必要があります。

var o = from fr in Context.CodeShareInterline
            join a from Context.Airline on a.AirlineId == fr.AirlineId 
            join z from Context.Zone on fr.ContactId == z.ContactId
            select new { 
                        Interline = fr,
                        AirLine = a,
                        Zone = z
                       };
于 2011-03-23T09:33:43.963 に答える