提问者:小点点

在ASP.NET核心中筛选按id获取查询时出现问题。 获取正确的行数,但都是完全相同的


我在Postman中使用以下查询https://localhost:44300/api/viewevents?id=bob。 相反,它返回了4个包含ID Bob的不同行,而是返回了4个完全相同的行。 如有任何帮助,我们将不胜感激。

API控制器

// GET: api/ViewEvents
       [HttpGet]
       public async Task<ActionResult<IEnumerable<ViewEvents>>> GetViewEvents(string id)
       {

           if(id == null)
           {
               return await _context.ViewEvents.ToListAsync();
           }
           else
           {
               
               var viewEvents = _context.ViewEvents.Where(i => i.Id==(id)).ToList();
               if (viewEvents.Count < 1)
               {
                   return NotFound();
               }
               
               return viewEvents;
           }
       }

数据库视图返回正确的结果。

CREATE 
    ALGORITHM = UNDEFINED 
    DEFINER = `tim_azure`@`%` 
    SQL SECURITY DEFINER
VIEW `view_events` AS
    SELECT 
        `e`.`CreatedUserID` AS `id`,
        `e`.`ID` AS `eventid`,
        `e`.`Event` AS `event`
    FROM
        `tblevent` `e`

下图包含数据库恢复结果。 数据库结果


共1个答案

匿名用户

我更改了我的查询到下面,它工作了一些原因。

       var viewEvents = _context.Tblevent.Where(i => i.CreatedUserId == (id));
        if (id == null)
        {
            return await _context.Tblevent.ToListAsync();
        }
        else
        {
           

            if (viewEvents.ToList().Count < 1)
            {
                return NotFound();
            }

            return viewEvents.ToList();
        }
    }