【问题标题】:Search In claims在索赔中搜索
【发布时间】:2020-08-07 16:50:29
【问题描述】:

我正在尝试根据特定声明的价值过滤用户。

我使用 ASP .Net Core 3 和 RavenDB。

filteredData = data.Search(d => d.Email, model.search.value)
                   .Search(d => d.LastName, model.search.value)
                   .Search(d => d.FirstName, model.search.value)
                   .Search(d => d.Claims.FirstOrDefault(c => c.ClaimType == "Role"), model.search.value);

这不起作用。这是错误消息:

System.InvalidOperationException: 'Cannot understand how to translate d.Claims.FirstOrDefault(c => (c.ClaimType == "Role"))'

感谢您的帮助。

【问题讨论】:

  • 什么是堆栈跟踪?
  • 你能告诉我什么是数据类型吗?您是否使用身份或其他身份验证架构?当用户的声明声明类型为角色时,您的意思是要获取用户的电子邮件、名字、姓氏吗?

标签: c# .net linq asp.net-core ravendb


【解决方案1】:

Search 替换为Where

filteredData = data.Search(d => d.Email, model.search.value)
                   .Search(d => d.LastName, model.search.value)
                   .Search(d => d.FirstName, model.search.value)
                   .Where(d => d.Claims.FirstOrDefault(c => c.ClaimType == "Role"));

【讨论】:

    猜你喜欢
    • 2021-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多