gpt4 book ai didi

c# - 在不实现的情况下使用 Linq Indexof StartIndex

转载 作者:行者123 更新时间:2023-11-30 17:50:27 24 4
gpt4 key购买 nike

Linq-to-Entities 似乎无法识别 IndexOf(String,Int)。 Int 是起始索引。有谁知道不需要实现的解决方法?我想保持可查询,而不设置 tolist 或 IEnumerable。

下面是用例。

query = query.Where(Function(TableName) TableName.TableColumn.IndexOf(previousItem) <    TableName.TableColumn.IndexOf(item, TableName.TableColumn.IndexOf(previousItem)))

query = IQueryable

这行代码紧跟在第 N 个(其中 n>0)关键字之后。起始索引是必要的,以确保在字符串“ABC%EFG”中,“EFG”位于“ABC”之后

最佳答案

按照 Jure 的建议,使用 SqlFunctions.PatIndex

测试:给定一个包含 3 条记录的字符串表:

  1. 比利鲍勃乔
  2. 鲍勃·比利·乔
  3. 乔比利鲍勃

林克

var q = db.Strings
.Where(x => SqlFunctions.PatIndex("%Joe%Bil%Bob", x.Text) > 0)
.Select(x => x.Text);

返回:乔比利鲍勃

T-SQL 探查器

SELECT 
[Extent1].[Text] AS [Text]
FROM [dbo].[Strings] AS [Extent1]
WHERE ( CAST(PATINDEX(N'%Joe%Bil%Bob', [Extent1].[Text]) AS int)) > 0

关于c# - 在不实现的情况下使用 Linq Indexof StartIndex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20752008/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com