EF Query Help.Сложный запрос с интерхитированными типами и самоссылкой - PullRequest
1 голос
/ 23 сентября 2010

Я все еще новичок в EF, и я выяснил некоторые основные вопросы. Я нахожусь в тупике на одной из самых трудных вещей, которые я пытаюсь достичь.

У меня есть 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 

1 Ответ

0 голосов
/ 23 сентября 2010

При условии, что у вашего Building класса есть свойство

User Landlord

, самый простой способ сделать это:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...