繁体   English   中英

SQL 查询不适用于 C# 实体框架

[英]SQL query not working on C# entity framework

此 SQL 查询完美运行:

Select events.Name, results.Description, Events.Id, results.EventId, results.UserId
FROM Events
LEFT JOIN Results ON events.Id=Results.EventId
where results.UserId!='86' OR results.UserId IS NULL;

我正在为我的 API 尝试同样的事情,但此代码没有返回结果:

public IActionResult AllEventsMatches()
    {
        var events = from Event in _dbContext.Events
                     join Result in _dbContext.Results on Event.Id equals Result.EventId
                     where Result.UserId != 86 || Result.UserId == null
                     select new
                     {
                         Name = Event.Name,
                         Description = Event.Description,
                         Id = Event.Id,
                         EventId = Result.EventId,
                         UserId = Result.UserId

                     };
        return Ok(events);
    }

你也必须使用左连接

 var events = 
 ( from Event in _dbContext.Events
    join Result in _dbContext.Results on Event.Id equals Result.EventId into ResultJ
    from Recult in ResultJ.DefaultIfEmpty()    
 where  Result.UserId == null || Result.UserId != 86 
                     select new
                     {
                         Name = Event.Name,
                         Description = Event.Description,
                         Id = Event.Id,
                         EventId = Result.EventId,
                         UserId = Result.UserId

                     }).ToList();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM