如何使用LINQ连接多个表
我正试图用LINQ连接三个表。 我的SQL工作如下:
Select j.Id, u.FirstName , u.LastName, u.Role From Job j left join JobTranslator as jt on j.Id = jt.JobId left join JobRevisor as jr on j.Id = jr.JobId left join [User] as u on jt.UserId = u.Id OR jr.UserId = u.Id Where u.Id = someID;
我可以使用下面的两个连接来使用它:
IQueryable jobs = from j in _db.Jobs join jr in _db.JobRevisors on j.Id equals jr.JobId into jrs from jrResult in jrs.DefaultIfEmpty() join u in _db.Users on jrResult.UserId equals u.Id into jrU from jrUResult in jrU.DefaultIfEmpty() where jrUResult.Id == userId orderby j.Id select j;
但是当我尝试加入我最后需要的表时,它不像下面那样工作。
IQueryable jobs = from j in _db.Jobs join jt in _db.JobTranslators on j.Id equals jt.JobId into jts from jtResult in jts.DefaultIfEmpty() join jr in _db.JobRevisors on jtResult.Id equals jr.JobId into jrs from jrResult in jrs.DefaultIfEmpty() join u in _db.Users on jrResult.UserId equals u.Id into jrU from jrUResult in jrU.DefaultIfEmpty() join u in _db.Users on jtResult.UserId equals u.Id into jtU from jtUResult in jtU.DefaultIfEmpty() where jtUResult.Id == userId orderby j.Id select j;
任何人的想法?
来自Linq – 在多个(OR)条件下左连接 :
IQueryable jobs = (from j in _db.Jobs join jt in _db.JobTranslators on j.Id equals jt.JobId into jts from jtResult in jts.DefaultIfEmpty() join jr in _db.JobRevisors on jtResult.Id equals jr.JobId into jrs from jrResult in jrs.DefaultIfEmpty() join u in _db.Users on jtResult.UserId equals u.Id into jtU from jtUResult in jtU.DefaultIfEmpty() where jtUResult.Id == userId orderby j.Id select j).Concat( from j in _db.Jobs join jt in _db.JobTranslators on j.Id equals jt.JobId into jts from jtResult in jts.DefaultIfEmpty() join jr in _db.JobRevisors on jtResult.Id equals jr.JobId into jrs from jrResult in jrs.DefaultIfEmpty() join u in _db.Users on jrResult.UserId equals u.Id into jrU from jrUResult in jrU.DefaultIfEmpty() where jtUResult.Id == userId orderby j.Id select j ).Distinct()
- ASP.Net WebApi:如何在运行时加载其他控制器
- 你可以从ApiController类访问GetOwinContext()。GetUserManager吗?
- asp.net mvc本地化
- 检查null的性能损失
- 尝试激活’AuthController’时无法解析类型’Microsoft.AspNetCore.Identity.UserManager`的服务
- 在模型中保存模型
- 实体类型’Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin ‘需要定义一个键
- 如何将Enum从视图传递到模型ASP.Net MVC
- 通过ASP.NET身份2中的UserManager.Update()更新用户