簡體   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