2010-09-23 63 views
1

我還是新來EF,我已經想出了一些基本的查詢。我困惑於我想要達到的更難的事情之一。EF查詢幫助。與interhited類型和自引用困難的查詢

我有4個實體 用戶,租客,大廈,公寓

租客從用戶

繼承在這一點上,誰是不是租戶可以被看作是一個地主的用戶。

用戶(業主)具有一對多建築

建築都一對多公寓

公寓已一對多租戶(一個活躍在任何給定時間)

我想圖瞭解如何創建一個EF查詢,該查詢將給出給定用戶(房東)的租戶列表。

,給我我想要的SQL是:

SELECT u2.User_ID AS TenantUser_ID, u2.UserName 
FROM Users u 
LEFT JOIN rt_UserBuilding ub ON u.User_ID = ub.User_ID 
LEFT JOIN Buildings b ON ub.Building_ID = b.Building_ID 
LEFT JOIN Apartments a ON a.Building_ID = b.Building_ID 
LEFT JOIN Tenants t ON a.Apartment_ID = t.Apartment_ID 
LEFT JOIN Users u2 ON t.User_ID = u2.User_ID 
WHERE u.User_ID = 1 AND t.User_ID IS NOT NULL 

回答

0

假設你Building類有屬性

User Landlord 

最簡單的方法是做到這一點:

context.Tenants.Where(tenant => tenant. 
           Apartment. 
           Building. 
           Landlord.Id == yourLandlord.Id 
        ).ToList();