1

誰かが以下で私を助けてくれることを願っています。

私のテーブルは、

(Job)
JobID
CustomerID
JobPartID

Job -> JobPart (One to Many)
(JobPart)
JobPartID
JobID [Foreign Key – ref JobID(JobID)]
Pickup-AddressID [Foreign Key – ref Address(AddressID)]
Destination-AddressID [Foreign Key – ref Address(AddressID)]

Address is a separate table
(Address)
AddressID
HouseNo
Street
City
Etc..

私が欲しいのは、特定の顧客のために、住所の詳細を含むすべての JobPart です。

4

1 に答える 1

0

それは有効な c# としてもコンパイルされませんが、探しているのは次のようなものだと思います。

var results = 
    from j in job
    from jp in j.JobParts
    where j.CustomerID == 1
    select new { jp.PickupAddress, jp.DestinationAddress };

JobPartsこれは、との間に適切なナビゲーション プロパティが設定されていると仮定して機能しますAddresses

これは次のように非常に簡単に使用できます。

foreach(var record in results)
{
    var pickupHouseNo = record.PickupAddress.HouseNo;
    var pickupStreet = record.PickupAddress.Street;
    // ...
    var destinationHouseNo = record.DestinationAddress.HouseNo;
    var destinationStreet = record.DestinationAddress.Street;
    // do stuff
}

本当にフラットなクエリ結果が必要な場合は、これを使用してください。

var results = 
    from j in job
    from jp in j.JobParts
    where j.CustomerID == 1
    select new 
    {
        PickupHouseNo = jp.PickupAddress.HouseNo, 
        PickupStreet = jp.PickupAddress.Street, 
        // ...
        DestinationHouseNo = jp.DestinationAddress.HouseNo , 
        DestinationStreet = jp.DestinationAddress.Street, 
    };
于 2013-06-04T00:54:02.153 に答える