gpt4 book ai didi

c# - 如何过滤列的第一个字符在 EF 和 SQL Server 范围内的行?

转载 作者:行者123 更新时间:2023-11-30 17:33:49 25 4
gpt4 key购买 nike

我有下表:

CREATE TABLE [dbo].[Phrase] (
[PhraseId] UNIQUEIDENTIFIER DEFAULT (newid()) NOT NULL,
[English] NVARCHAR (250) NOT NULL
)

有没有一种方法可以使用 Entity Framework 来选择 [English] 列的第一个字符小于“k”的所有行。例如,它是“a”、“b”、“c”...“j”等

像这样:

query = query.Where(w =>   w.English.StartsWith("k");

但对于字符范围而不仅仅是“k”

最佳答案

您可以在从数据库中获取记录后对其进行过滤。为此,您可以执行以下操作:

var result = query.ToList();

然后过滤如下:

result = result.Where(w => Convert.ToChar(w.English.Substring(0,1).ToLower()) < 'k');

SQL Server 中,以下查询将起作用:

SELECT * FROM table WHERE Substring(English, 1, 1) < 'k'

对于字符范围,您的查询将是:

SELECT * FROM table WHERE Substring(English, 1, 1) BETWEEB 'a' And 'j'

如果英文列的第一个字符应该在 aj 之间,上面将获取记录。请注意,在这种情况下,aj 将包含在内。

仅对于特定字符,您的查询将是:

 SELECT * FROM table WHERE Substring(English, 1, 1) IN ('a', 'd', 'f')

以上将返回英文列以adf开头的记录。要否定你可以使用 NOT IN ('a', 'd', 'f')

I would suggest you to write a procedure with the above query and then call it using entity framework. This approach would be much faster.

关于c# - 如何过滤列的第一个字符在 EF 和 SQL Server 范围内的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43277576/

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