不能将Linq与MongoDb上的嵌套类List <string>一起使用</string>

时间:2014-10-30 05:39:43

标签: c# linq mongodb

this问题非常相似,但所提供的答案并未解决此问题。

我有以下课程

public class Company
{
   [BsonId]
   public string dealerId = null;

   public List<string> dealers = new List<string>();
}      

我正在尝试使用以下查询进行查询

collection.AsQueryable<Company>()
          .Where(cpy =>
                 cpy.dealers.Where(dlr => 
                         dlr.ToLower.Contains("dealer1")).Any());

执行此操作会产生以下结果

  

无法确定表达式的序列化信息:   Enumerable.Where(cpy.dealers,(String dlr)=&gt;   dlr.ToLower()。包含( “dealer1”))

我相信可以在字符串周围创建一个包装器,并使用带有谓词的Any,但这不是一个非常优雅的解决方案。有没有一种简单的方法可以完全错过这个?

我正在使用mongodb 2.6.4和C#驱动程序1.9.2

编辑:

我希望将上述linq查询转换为以下任一本机mongo查询,

db.Company.find({dealers: {$regex: /dealer1/, $options: "is"}})

或使用elemMatch

db.Company.find({dealers: {$elemMatch: { $regex: /dealer1/, $options: "is"}}})

0 个答案:

没有答案