У меня возникла необычная проблема с LiteDB, и я не могу понять, что я делаю неправильно.
У меня есть классы лиги сборов, в каждой лиге есть перечисление, говорящее, какой тип лиги это is:
public enum LEAGUETYPE
{
PremierLeague,
Championship,
LeagueOne,
LeagueTwo
}
Я могу успешно запросить список лиг напрямую, используя перечисление следующим образом:
var leagues = db.GetCollection<League>("Leagues");
var result1 = leagues.FindOne(x => x.LeagueType == LEAGUETYPE.PremierLeague);
Однако, если у меня есть тип лиги, переданный в метод запроса как Параметр или определите параметр как локальную переменную, после чего произойдет сбой:
var tempLeague = LEAGUETYPE.PremierLeague;
var leagues = db.GetCollection<League>("Leagues");
var result2 = leagues.FindOne(x => x.LeagueType == tempLeague);
Исключение составляет:
An unhandled exception of type 'System.NullReferenceException' occurred in LiteDB.dll: 'Object reference not set to an instance of an object.'
at LiteDB.LinqExpressionVisitor.VisitBinary(BinaryExpression node)
at System.Linq.Expressions.BinaryExpression.Accept(ExpressionVisitor visitor)
at System.Linq.Expressions.ExpressionVisitor.VisitLambda[T](Expression`1 node)
at LiteDB.LinqExpressionVisitor.VisitLambda[T](Expression`1 node)
at LiteDB.LinqExpressionVisitor.Resolve(Boolean predicate)
at LiteDB.BsonMapper.GetExpression[T,K](Expression`1 predicate)
at LiteDB.LiteCollection`1.Find(Expression`1 predicate, Int32 skip, Int32 limit)
Чего мне здесь не хватает?