相关疑难解决方法(0)

LINQ-to-SQL中不区分大小写的字符串比较

我已经读过使用ToUpper和ToLower来执行不区分大小写的字符串比较是不明智的,但是在LINQ-to-SQL方面我没有其他选择.LINQ-to-SQL忽略String.Compare的ignoreCase和CompareOptions参数(如果您使用区分大小写的数据库,即使您要求不区分大小写的比较,也会得到区分大小写的比较).ToLower或ToUpper是最好的选择吗?这个比那个好吗?我以为我读过ToUpper更好的地方,但我不知道这是否适用于此.(我正在进行大量的代码审查,每个人都在使用ToLower.)

Dim s = From row In context.Table Where String.Compare(row.Name, "test", StringComparison.InvariantCultureIgnoreCase) = 0
Run Code Online (Sandbox Code Playgroud)

这转换为一个SQL查询,它简单地将row.Name与"test"进行比较,并且不会在区分大小写的数据库上返回"Test"和"TEST".

.net sql linq vb.net linq-to-sql

133
推荐指数
3
解决办法
11万
查看次数

LINQ to Entities区分大小写比较

这不是LINQ to Entities中区分大小写的比较:

Thingies.First(t => t.Name == "ThingamaBob");
Run Code Online (Sandbox Code Playgroud)

如何与LINQ to Entities实现区分大小写的比较?

.net c# linq-to-entities entity-framework-4

110
推荐指数
4
解决办法
6万
查看次数

为什么String.Equals返回false?

我有以下C#代码(来自我正在使用的库)试图找到比较指纹的证书.请注意,在下面的代码都mycert.ThumbprintcertificateThumbprint都是字符串.

var certificateThumbprint = AppSettings.CertificateThumbprint;

var cert =
    myStore.Certificates.OfType<X509Certificate2>().FirstOrDefault(
      mycert => 
      mycert.Thumbprint != null && mycert.Thumbprint.Equals(certificateThumbprint)
      );
Run Code Online (Sandbox Code Playgroud)

这无法找到带有指纹的证书,因为即使字符串相等mycert.Thumbprint.Equals(certificateThumbprint)也是false如此.mycert.Thumbprint == certificateThumbprint也返回false,同时mycert.Thumbprint.CompareTo(certificateThumbprint)返回0.

在此输入图像描述

我可能会遗漏一些明显的东西,但我无法弄清楚为什么Equals方法失败了.想法?

c# string comparison equality

23
推荐指数
1
解决办法
6031
查看次数

LINQ区分大小写

如何根据情况使LINQ区分大小写并且不区分大小写?

我正在使用sql server 2008和Entity Framework 4.0.

我更改了COLLATION以使SQL Server区分大小写.所以对于这样的场景:

 query = query.Where(x => x.Username == username);
Run Code Online (Sandbox Code Playgroud)

它很棒.但是,当按主题(或名称或类似)搜索时,我需要能够从db 忽略大小写中提取数据,如下所示:

query = query.Where(x => (x.Name.Contains(Name)));
Run Code Online (Sandbox Code Playgroud)

当记录是"TestString"并且我正在寻找"测试"或"测试"或类似时,它不起作用.我如何才能使它在文本中找到文本或字符串的一部分?谢谢

sql linq linq-to-entities

7
推荐指数
2
解决办法
1万
查看次数

实体框架和不区分大小写的字符串搜索

我有一个Entity Framework实体,其字符串属性名为Description.
搜索Description包含字符串的所有实体非常简单:

var res = from u ctx.Users where u.Description.contains(str) select u;
Run Code Online (Sandbox Code Playgroud)

但是假设我想支持不区分大小写的搜索?

linq entity-framework

7
推荐指数
1
解决办法
9907
查看次数