我还是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
答案 0 :(得分:0)
假设您的Building
班级有财产
User Landlord
最简单的方法是:
context.Tenants.Where(tenant => tenant.
Apartment.
Building.
Landlord.Id == yourLandlord.Id
).ToList();