Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.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/21.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# 为什么StringComparison.InvariantCultureInoRecase不能用于此Db4o linq查询?_C#_.net_Linq_Db4o - Fatal编程技术网

C# 为什么StringComparison.InvariantCultureInoRecase不能用于此Db4o linq查询?

C# 为什么StringComparison.InvariantCultureInoRecase不能用于此Db4o linq查询?,c#,.net,linq,db4o,C#,.net,Linq,Db4o,以下查询有效。当我用错误的大小写输入名称时,我得到了正确的结果 private static IObjectContainer db = Db4oFactory.OpenFile(db4oPath); public static IQueryable<Company> GetCompaniesByName(string name) { return (from Company c in db where c.Name.ToL

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

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();
    }
private static IObjectContainer db=db4ofatory.OpenFile(db4oPath);
公共静态IQueryable GetCompanyByName(字符串名称){
返回(来自公司c,单位为db)
其中c.Name.ToLowerInvariant()等于(Name.ToLowerInvariant())
选择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();
    }
public静态IQueryable GetCompanyByName(字符串名){
返回(来自公司c,单位为db)
其中c.Name.Equals(Name,StringComparison.InvariantCultureInogoreCase)
选择c).AsQueryable();
}

为什么?

LINQ表达式解析器可以自由地支持(或不支持)他们选择的任何一组操作。在LINQtoSQL和EF的情况下,如果他们被什么东西弄糊涂了,他们会抛出一个异常(我希望上面的内容也会被弄糊涂),但听起来Db4o只是说“没有匹配项”


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

所以你也认为这是他们的事,而不是我的事。我总是先怀疑自己,因为我经常犯错;)