StartsWith() 不会转换为 LINQ 中的 Like('abc%')

2024-03-19

我有以下 ASP.NET Core LINQ 代码:

    List<UserSearchResult> results = await db.ApplicationUsers.Where(u => u.Name.StartsWith(name) && !u.Deleted && u.AppearInSearch)
                                    .OrderByDescending(u => u.Verified)
                                    .ThenBy(u => u.DateAdded) // Added to prevent duplication of results in different pages
                                    .Skip(page * recordsInPage)
                                    .Take(recordsInPage)
                                    .Select(u => new UserSearchResult()
                                    {
                                        Name = u.Name,
                                        Verified = u.Verified,
                                        PhotoURL = u.PhotoURL,
                                        UserID = u.Id,
                                        Subdomain = u.Subdomain
                                    }).ToListAsync();

不幸的是,这会转化为以下内容:

SELECT [t].[Name], [t].[Verified], [t].[PhotoURL], [t].[Id], [t].[Subdomain]  FROM (      SELECT [u0].*      FROM [AspNetUsers] AS [u0]      WHERE ((([u0].[Name] LIKE @__name_0 + N'%' AND (CHARINDEX(@__name_0, [u0].[Name]) = 1)) OR (@__name_0 = N'')) AND ([u0].[Deleted] = 0)) AND ([u0].[AppearInSearch] = 1)      ORDER BY [u0].[Verified] DESC, [u0].[DateAdded]      OFFSET @__p_1 ROWS FETCH NEXT @__p_2 ROWS ONLY  ) AS [t]

我想知道为什么它有这部分:

(CHARINDEX(@__name_0, [u0].[Name]) = 1)) OR (@__name_0 = N''))

而且不仅仅是喜欢

多谢


实体框架提供了一个特殊的函数 EF.Functions.Like,可将其用于具有标准 SQL LIKE 语法的 LINQ 表达式。对于 StartWith 模式,表达式将如下所示:

var likeExpression = name+"%";
... await db.ApplicationUsers.Where(u => EF.Functions.Like(u.Name,likeExpression)...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

StartsWith() 不会转换为 LINQ 中的 Like('abc%') 的相关文章

  • MySQL - 替换列中的字符

    作为一个自学成才的新手 我给自己制造了一个大问题 在将数据插入数据库之前 我将字符串中的撇号 转换为双引号 而不是 MySQL 实际需要的反斜杠和撇号 在我的表增长到超过 200 000 行之前 我认为最好立即纠正此问题 所以我做了一些研究
  • 展平具有未知列数的子/父数据

    我正在努力寻找存储和表示 SQL MySQL DB 和 C Windows 表单中的数据的最佳方法 我的数据映射到如下所示的类时 public class Parent public string UniqueID get set Key
  • 如何列出表中的所有列?

    对于各种流行的数据库系统 如何列出表中的所有列 对于 MySQL 请使用 DESCRIBE name of table 只要您使用 SQL Plus 或 Oracle 的 SQL Developer 这也适用于 Oracle
  • 如何对主索引重新编号

    我有一个简单的 MySQL 表 主索引 id 不是一一编号的 1 31 35 100 等 我希望它们的编号如 1 2 3 4 请告诉我该怎么做 我还想指出的是 我知道该操作可能产生的后果 但我只是想整理一下表格 我同意其他方法也可以 但我只
  • 如何调试仅在发布模式下崩溃的 Android 应用程序

    在调试模式下一切正常 但在发布模式下崩溃 调试模式下有哪些所需权限在发布模式下未打开 EDIT 当我将 链接 设置为 无 时 我会通过第一个屏幕进入 登录 屏幕 但是 当我添加发布权限时Internet 第一次尝试读取远程实体框架核心表时它
  • LINQ to SQL 特性

    我遇到了 LINQ to SQL 的一些特殊情况 通过一个相对简单的查询 我想选择一些字段 但将日期字段格式化为字符串 我首先是这样实现的 var list dataContext MyLists Single x gt x ID myId
  • 获取列名称以及 JSON 响应

    我有三个实体类 我编写了包含两个表的联接的查询 表 费用类别 Entity Table name ExpensesCategories public class ExpensesCategories Id GeneratedValue st
  • SQL/C# - UPSERT 上的主键错误

    UPDATE 简化的问题 从问题中删除了 C 在以下情况下 如何编写一个可以识别两行相同的 UPSERT 看看怎么有一个 b 退格键 在那里编码 奇怪的小字符 SQL 将它们视为相同 虽然我的 UPSERT 将此视为new data并在应该
  • Azure COSMOS DB 如何查询数组中的内容

    如何进行查询以获取文档数组 roles 中包含某些内容的文档 我想获取以下文档 其中 Trainer 是数组中的元素 enabled true profilePicture null roles Trainer Client SELECT
  • 显式与隐式 SQL 连接

    显式内连接与隐式内连接之间有效率差异吗 例如 SELECT FROM table a INNER JOIN table b ON a id b id vs SELECT a b FROM table a table b WHERE a id
  • 使用 SqlDataReader.IsDBNull 时使用列名

    我已经得到了从 SQL DB 读取数据的代码 我不知道应该如何编辑它 以便我可以使用原始列名称而不是列索引 string query SELECT FROM zajezd WHERE event thisrow AND year klien
  • 显示包含特定表的所有数据库名称

    我的 SQL Server 中有很多数据库 我必须只搜索包含特定表名的数据库名称Heartbitmaster 我有很多数据库 例如Gotgold DVD等 我只想从包含此表的查询中查找数据库名称Heartbitmaster 我搜索我尝试查询
  • mysql 在 sum() 函数上使用 concat,例如 concat(sum(col1),"%")

    我正在尝试合并多个查询 但其中一个查询使用 sum 当我尝试在此列上应用 concat 时 我得到不需要的 blob 结果 我如何在聚合列上应用 concat 和 union 我期待这个结果 SELECT row 1 col1 UNION
  • Django 查询:“datetime + delta”作为表达式

    好吧 我的问题如下 假设我有下一个模型 这是一个简单的情况 class Period models Model name CharField field specs here start date DateTimeField field s
  • Mysql获取特定表的最后一个id

    我必须从特定的插入表中获取最后的插入 ID 可以说我有这个代码 INSERT INTO blahblah test1 test 2 VALUES test1 test2 INSERT INTO blahblah2 test1 test 2
  • 按每月时间为用户标记标签

    数据源 User ID Visit Date 1 2020 01 01 12 29 15 1 2020 01 02 12 30 11 1 2020 04 01 12 31 01 2 2020 05 01 12 31 14 Problem 我
  • 如何在sql server中对行号进行内连接

    SQL Server 2008 两张表 表A有以下数据 RowA RowB RowC RowD 表B有以下数据 Row4 Row3 Row2 Row1 我想得到以下输出 RowA Row1 RowB Row2 RowC Row3 RowD
  • 字符串文字上的 SQL Server T-SQL N 前缀[重复]

    这个问题在这里已经有答案了 这可能是一个菜鸟问题 但我发现了一些 T SQL 查询示例来验证数据库大小SELECT and WHERE clause here http technet microsoft com en us library
  • 表达与空列表相同的 IN 条件的可移植方式是什么?

    例如 工作于sqllite3 select from orders where custid and status in 但它失败了postgres ksysdb select code applicable objecttype from
  • 带有私有设置器的 EFCore Base 实体模型属性 - 迁移奇怪的行为

    实体模型继承的类内的私有设置器似乎会导致 EFCore 迁移出现奇怪的问题 考虑以下示例 其中有多个类 Bar and Baz 继承自Foo 跑步时Add Migration多次命令 添加 删除private修饰符 生成的模式在多个方面都是

随机推荐

  • 具有自定义格式的 XML 编写器

    我需要创建一个人类可读的 XML 文件 XmlWriter 似乎对此几乎是完美的 但我想在我想要的地方插入换行符或一般情况下的自定义空白 两者都不WriteRaw http msdn microsoft com library 0755yt
  • Android Studio布局大小文件夹

    我正在尝试为 1080dp 和其他使用创建不同的布局 layout sw1080dp 文件夹 但似乎 android studio 完全忽略它并从默认布局文件夹加载 我尝试了另一种方法 使用values sw1080dp 设置不同的尺寸 但
  • 提供程序:命名管道提供程序,错误:40 – 无法打开与 SQL Server 的连接。

    我开发了一个依赖于 SQL Server 数据库的 net 应用程序 该数据库位于用于开发应用程序的本地计算机上 当我将数据库移动到远程计算机并更改连接字符串时 出现以下错误 连接 SQL Server 2005 时建立与服务器的连接时发生
  • 无法使用 jest + puppeteer 获得测试覆盖率

    我有项目优秀 js https github com vitaly t excellent自动测试设置jest https github com facebook jest and 木偶师 https github com GoogleCh
  • Android Arctic Fox 的 InvokingTargetException 2020.3.1 M1 苹果芯片上的arm64

    在我的 M1 Apple Silicon 上构建 Android 项目期间 使用kapt 例如房间 Android Studio Arctic Fox 2020 3 1 Beta 1 arm64 Android Studio Arctic
  • 如何将 DataTable 转换为 IDatareader?

    我们都知道 DataReader 比 DataTable 更快 因为 DataReader 用于构建 DataTable 因此鉴于我已经有一个数据表 为什么我想将其转换为 DataReader 好吧 我正在创建一个名为 IDataProvi
  • java arraylist EnsureCapacity 不起作用

    要么我做错了 要么我不明白这个方法是如何工作的 ArrayList
  • 强制 pandas xaxis 日期时间索引使用特定格式

    我的 pandas 数据框如下所示 data1 data2 data3 DateTime 2016 04 18 16 16 53 66 1 94 8654 2016 04 18 16 17 03 67 1 94 8601 2016 04 1
  • 顺序一致但非静态一致的执行示例

    根据 Maurice Herlihy 和 Nir Shavit 的 多处理器编程的艺术 第 3 章 在并发程序的正确性方面 顺序一致性是比静态一致性更强的条件 作者还在 3 4 1 中提到 存在顺序一致的执行 但并非静态一致 我不明白怎么办
  • 使用 Jcraft 通过 SFTP 传输文件

    项目清单 我可以编写一个java程序通过SFTP传输文件 但是 这将包含一个带有可执行命令的脚本 这可以通过 Jcraft 实现吗 比方说 示例脚本文件是这样的 cd pub ascii get filename txt put other
  • 打字稿提升

    我试图理解打字稿中的提升 提升是否在 Typescript 中进行 如果是 与 Javascript 中的提升方式相比有什么不同吗 例如 即使我在使用它的函数之后声明了接口 代码也可以很好地转换 可以安全地假设它的发生是由于作为转译的一部分
  • 使用具有多行的 imagettftext 函数?

    我正在使用 php 创建透明文本 gt png 图像 到目前为止一切顺利 唯一的问题是我希望能够由于固定宽度而使文本自动换行 或者能够在文本中插入断线 有没有人有任何经验这样做 这是我的代码
  • 动态更改持久性单元 - JPA

    persistence xml 中的持久性单元是在构建应用程序期间创建的 由于我想在运行时更改数据库url 有什么方法可以在运行时修改持久化单元吗 我应该在分发后使用除预绑定数据库之外的不同数据库 我正在使用 EclipseLink JPA
  • Django-storage - 如何在上传之前检查文件大小?

    存储和 Django 1 6 我想限制保存的文件大小s3 执行此操作的适当方法是什么 我应该在表单中进行自定义字段验证 还是在使用 Django Storage 时有更好的方法来执行此操作 验证需要将文件上传到服务器 这建议的方式 http
  • 会话关闭后如何强制休眠释放内存?

    我们最近才开始使用 Hibernate 并且仍在适应它的工作方式 我们看到的一件事是 即使在所有会话关闭并且引用超出范围之后 hibernate 似乎仍然在其缓存中维护以前使用的数据库值 我们的代码可以多次读取一组表 因为所有的内存都被非常
  • 从通过 cron 作业运行的 bash 脚本访问 SSH 密钥

    我将这个脚本放在一起 每天更新一个分叉的 Github 存储库文件夹 如果我从提示符中调用它 它运行得很好 但我无法弄清楚如何让它在作为 cron 作业运行时可靠地利用我的 id rsa 这eval ssh agent 正是这样做的尝试 但
  • XCode中文档下的“注释”的用途是什么

    字体选择框下方有一个自由文本字段Xcode 5 似乎属于Notes类别 那么 注释和空盒子的目的是什么under No Font如下图所示 我尝试为我的一个组件 即我的按钮 使用注释 并为其添加一些注释 如图 1 所示 这是 XIB 中按钮
  • 单个请求到多个异步响应

    所以 问题来了 iPhone 很棒 但对于有服务器端要求的应用程序来说 带宽和延迟是严重的问题 我解决这个问题的最初计划是对数据位发出多个请求 双关语无意 并以此来处理大量传入 传出数据的问题 由于很多原因 这是一个坏主意 对我来说最明显的
  • Selenium:如何拦截请求

    有人知道如何在 Selenium WebDriver 中拦截 获取请求 url XHR 和响应吗 是否可以 Webdriver 不直接支持它 但您可以通过代理重定向来捕获所有流量 在爪哇 Proxy proxy new Proxy This
  • StartsWith() 不会转换为 LINQ 中的 Like('abc%')

    我有以下 ASP NET Core LINQ 代码 List