Web api 函数抛出异常 System.InvalidOperationException

web api function throwing exception of System.InvalidOperationException

我在 api 中从移动设备和 Rest 客户端调用以下代码:

[HttpGet]
        [Route("api/mobile/GetUsersList")]
        public IHttpActionResult GetUsersList()
        {

            var users = from c in db.Users
                            select new { c.id, c.user_name, c.reports_to };


            return Ok(users.ToList());

        }

我得到一个错误:

The cast to value type 'System.Int32' failed because the materialized value is null. Either the result type's generic parameter or the query must use a nullable type

我没有使用 where 所以我不确定为什么这个简单的查询会抛出这个错误。

我正在使用 Advanced Rest Client 测试此功能的 Http GET。

我在其他 SO 帖子中看到当 where 参数为 null 时会抛出此错误。

瑞安

尝试直接用cast指定名字

var users = from c in db.Users
            select new { id= (int?)c.id, user_name = c.user_name, reports_to = c.reports_to };

id = c.id ?? 0

您可以尝试使用 Entity FrameWork 和依赖注入来获取数据,方法如下:

 public async Task<List<User>> GetUsersList()
        {
            return await _context.Users.ToListAsync();
        }

以下是 Entity framework 的一些资源:

https://docs.microsoft.com/en-us/ef/core/

https://docs.microsoft.com/en-us/ef/core/querying/async