2
下實體給出:ArgumentNullException與ElemMatch
public class MyClass
{
public MyClass()
{
Aliases= new List<string>();
}
public Guid Id { get; set; }
public string Name { get; set; }
public List<string> Aliases{ get; set; }
}
我想通過名稱或使用下面的查詢任何匹配的別名搜索:
Query.Or(
Query<MyClass>.Matches(a => a.Name, request.Name),
Query<MyClass>.ElemMatch(a => a.Aliases, query => query.Matches(alias => alias, request.Name))
)
該查詢,只要工作以及myClass.Aliases.Count > 0
!但只要其空的我得到以下例外:
System.ArgumentNullException was unhandled by user code
HResult=-2147467261
Message=Value cannot be null.
Parameter name: name
Source=MongoDB.Driver
ParamName=name
StackTrace:
at MongoDB.Driver.Builders.Query.Matches(String name, BsonRegularExpression regex)
at MongoDB.Driver.Builders.QueryBuilder`1.Matches(Expression`1 memberExpression, BsonRegularExpression regex)
at My.Namespace.MyService.<>c__DisplayClassf.<Get>b__d(QueryBuilder`1 builder) in c:\Dev\....cs:line 148
at MongoDB.Driver.Builders.QueryBuilder`1.ElemMatch[TValue](Expression`1 memberExpression, Func`2 elementQueryBuilderFunction)
at MongoDB.Driver.Builders.Query`1.ElemMatch[TValue](Expression`1 memberExpression, Func`2 elementQueryBuilderFunction)
我該如何解決這個限制/錯誤?