Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 强制在实体框架核心中使用不区分大小写的字符串.Contains_C#_.net_String_Entity Framework Core_Case Insensitive - Fatal编程技术网

C# 强制在实体框架核心中使用不区分大小写的字符串.Contains

C# 强制在实体框架核心中使用不区分大小写的字符串.Contains,c#,.net,string,entity-framework-core,case-insensitive,C#,.net,String,Entity Framework Core,Case Insensitive,有没有办法强制LINQtoSQL执行不区分大小写的包含 我正在实体框架核心上与PostgreSQL合作。 关于上述答案,答案是否定的。没有办法在更低的水平上进一步进行荷载工况敏感性检查。您必须完全执行此人所做的操作: 下面是一个关于最新LINQ语法的示例 var tickerObj = _unitOfWork.GetRepository<CurrencyPair>() .GetQueryable() // .Where

有没有办法强制LINQtoSQL执行不区分大小写的包含

我正在实体框架核心上与PostgreSQL合作。

关于上述答案,答案是否定的。没有办法在更低的水平上进一步进行荷载工况敏感性检查。您必须完全执行此人所做的操作:

下面是一个关于最新LINQ语法的示例

var tickerObj = _unitOfWork.GetRepository<CurrencyPair>()
                .GetQueryable()
                // .Where() and .Include() omitted for brevity
                .SingleOrDefault(cp => string.Concat(
                    cp.PartialCurrencyPairs.FirstOrDefault(pcp => pcp.IsMain).Currency.Abbrv,
                    cp.PartialCurrencyPairs.FirstOrDefault(pcp => !pcp.IsMain).Currency.Abbrv)
                    .Equals(ticker, StringComparison.InvariantCultureIgnoreCase)
                && cp.CurrencySource.Abbreviation.Equals(exchangeAbbrv, StringComparison.InvariantCultureIgnoreCase));

最直接的方法是
ctx.Table.Where(c=>c.Column.ToLower().Contains(searchTerm.ToLower())
该解决方案可能与@Evk重复,但如果对同一字符串进行索引,则会导致DB跳过索引并执行表查找。需要记住的是。@aevitas不是必需的。Postgesql允许在表达式上定义索引,因此您可以在较低的(您的列)上使用索引,这样的索引将用于上面的查询。当然,仍然值得记住。
cp.CurrencySource.Abbreviation.Equals(exchangeAbbrv, StringComparison.InvariantCultureIgnoreCase)