1

SQL クエリから LINQ への変換に苦労しています。

SQLは次のとおりです。

SELECT dbo.ORGANIZATION.ORGANIZATION_ID, 
       dbo.ORGANIZATION.ORGANIZATION_NAME, 
             dbo.PWR_ORGANIZATION_DIRECTORY.DIRECTORY_IDENTIFIER, 
             dbo.DETAIL_REQUIREMENT.DETAIL_ID, 
       dbo.DETAIL_REQUIREMENT.DETAIL_IDENTIFIER, 
             dbo.PWR_ORGANIZATION_DIRECTORY_MAPPING.DIRECTORY_ATTRIBUTE, 
             dbo.PWR_ORGANIZATION_DIRECTORY_MAPPING.ATTRIBUTE_VALIDATION, 
       dbo.PWR_ORGANIZATION_DIRECTORY_MAPPING.ATTRIBUTE_TRANSFORMATION, 
             dbo.PWR_ORGANIZATION_DIRECTORY_MAPPING.DETAIL_ACCESS

FROM  dbo.ORGANIZATION INNER JOIN
      dbo.DETAIL_REQUIREMENT ON dbo.ORGANIZATION.ORGANIZATION_ID = dbo.DETAIL_REQUIREMENT.ORGANIZATION_ID INNER JOIN
      dbo.PWR_ORGANIZATION_DIRECTORY INNER JOIN
      dbo.PWR_ORGANIZATION_DIRECTORY_MAPPING ON dbo.PWR_ORGANIZATION_DIRECTORY.ORGANIZATION_ID = dbo.PWR_ORGANIZATION_DIRECTORY_MAPPING.ORGANIZATION_ID AND 
      dbo.PWR_ORGANIZATION_DIRECTORY.DIRECTORY_TYPE_ID = dbo.PWR_ORGANIZATION_DIRECTORY_MAPPING.DIRECTORY_TYPE_ID AND 
      dbo.PWR_ORGANIZATION_DIRECTORY.DIRECTORY_ID = dbo.PWR_ORGANIZATION_DIRECTORY_MAPPING.DIRECTORY_ID ON 
      dbo.DETAIL_REQUIREMENT.DETAIL_ID = dbo.PWR_ORGANIZATION_DIRECTORY_MAPPING.DETAIL_ID AND 
      dbo.ORGANIZATION.ORGANIZATION_ID = dbo.PWR_ORGANIZATION_DIRECTORY_MAPPING.ORGANIZATION_ID

WHERE dbo.ORGANIZATION.ORGANIZATION_ID = 0 AND 
      dbo.PWR_ORGANIZATION_DIRECTORY.DIRECTORY_ID = 1 AND 
            dbo.PWR_ORGANIZATION_DIRECTORY.DIRECTORY_TYPE_ID = 1

そして、これが私が始めた方法ですが、テーブル間に2つと3つの結合があったときに混乱しました:

var megaFetch = from org in context.Organizations
            join detReq in context.DetailRequirements on org.OrganizationId equals detReq.OrganizationId
            join detMap in context.OrganizationDirectoryMappings on org.OrganizationId equals detMap.OrganizationId &&

誰かが私をここに導くことができますか?

ありがとう。

4

1 に答える 1

2

複数の列でテーブルを結合する必要がある場合は、両側に同じ数のフィールドを持つ匿名型を作成します。次のようになるはずです。

new {col1 = x.col1, col2 = x.col2, ...} equals new { col1 = y.col1, col2 = y.col2, ...}
于 2013-10-31T15:09:20.777 に答える