与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"}}})