有没有办法强制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)