有没有办法强制linq to sql执行不区分大小写的contains?
我正在和PostgreSQL一起研究实体框架核心。

最佳答案

Case insensitive name of tables and properties in Entity Framework 7
关于上述答案,没有。没有办法在更低的水平上进一步进行荷载敏感性检查。你必须按照这个人做的做:
How do I make contains case-insensitive in ef core 2?
下面是一个关于最新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));

关注singleOrDefault()段:
cp.CurrencySource.Abbreviation.Equals(exchangeAbbrv, StringComparison.InvariantCultureIgnoreCase)

07-26 06:22