我知道你必须说这篇文章是重复的,但我已经去了多个帖子,答案对我的代码不起作用。这是一个 Asp net web api 服务器。看一看: // GET: api/Vessels [HttpGet, Route(""), Route("{assets}")] public IQueryable<Vessel> GetVessels(string assets = "all") { var user = GetUser(); if (IsAdmin(user)) { return assets == "all" ? GetChildren(db.Vessels) : db.Vessels; } var claims = user.Claims .Where(c => c.ClaimType == "vessel") .ToList(); var vessels = db.Vessels .Where(v => claims.Any(c => v.Id == int.Parse(c.ClaimValue))) .toList(); // will evaluate the query and get error return assets == "all" ? GetChildren(vessels) : vessels; }这是例外:EntityFramework.SqlServer.dll 中出现类型为“System.NotSupportedException”的异常,但未在用户代码中处理附加信息:无法创建类型为“Microsoft.AspNet.Identity.EntityFramework.IdentityUserClaim”的常量值。在此上下文中仅支持原始类型或枚举类型。在我的测试中,我意识到错误在这个块中:claims.Any(c => v.Id == int.Parse(c.ClaimValue))如果我将其更改为 5 或其他任何内容,它就可以工作!
2 回答
- 2 回答
- 0 关注
- 102 浏览
添加回答
举报
0/150
提交
取消