gpt4 book ai didi

c# - 为什么 StringComparison.InvariantCultureIgnoreCase 不适用于此 Db4o linq 查询?

转载 作者:行者123 更新时间:2023-11-30 12:37:34 27 4
gpt4 key购买 nike

以下查询有效。当我用错误的大小写输入名称时,我得到了正确的结果。

private static IObjectContainer db = Db4oFactory.OpenFile(db4oPath);

public static IQueryable<Company> GetCompaniesByName(string name) {
return (from Company c in db
where c.Name.ToLowerInvariant().Equals(name.ToLowerInvariant())
select c).AsQueryable();
}

以下具有相同参数的查询(基本上是相同的单元测试)不返回任何结果。标记唯一的区别是 where 子句。

    public static IQueryable<Company> GetCompaniesByName(string name) { 
return (from Company c in db
where c.Name.Equals(name, StringComparison.InvariantCultureIgnoreCase)
select c).AsQueryable();
}

为什么?

最佳答案

LINQ 表达式解析器几乎可以自由支持(或不支持)它们选择的任何一组操作。在 LINQ-to-SQL 和 EF 的情况下,如果他们被某些东西弄糊涂了(我希望上面的内容属于这种情况),他们会抛出异常 - 但听起来 Db4o 只是在说“不匹配”。

Db40 是否能够记录它执行的查询?也许它在做一些奇怪的事情……但我们只能猜测……

关于c# - 为什么 StringComparison.InvariantCultureIgnoreCase 不适用于此 Db4o linq 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/681926/

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