При использовании для многих includeFilters в Entity Framework в моем операторе Linq-to-SQL код выдает ошибку:
Строка не была распознана как допустимый логический
Это не связано с тем, что я включаю, но, похоже, связано с тем, сколько я использую включенных фильтров.Я использую Z.EntityFramework.Plus
.
У меня есть объект Person
, который имеет несколько значений поля.Каждое значение поля имеет точную единицу FieldDefinition
.Объект Person
также содержит Profiles
и Timestamps
.Когда я включаю все 3, все работает нормально.
Но когда я включаю 4 или более, я получаю исключение.Неважно, что я включаю.Кажется, ошибка связана с количеством включений, которые я использую.
Что вызывает эту ошибку?И как я могу решить эту проблему?
Я пытался получить данные с помощью групповых объединений и объединений, но безуспешно (без ошибок, хотя просто не могу связать все объекты).
Я уже нашелэтот источник (https://blog.craigtp.co.uk/Post/2017/04/05/Entity_Framework_with_MySQL_-_Booleans,_Bits_and_%22String_was_not_recognized_as_a_valid_boolean%22_errors.), который больше объясняет мою проблему, но это не решает мою проблему.
var visitorsTask = _dbContext
.Persons
.IncludeFilter(visitor => visitor.Profiles.Where(profile => profile.Active == 1))
.IncludeFilter(visitor => visitor.FieldValues.Where(fieldValue => fieldValue.Active == 1))
.IncludeFilter(visitor => visitor.FieldValues.Where(fieldValue => fieldValue.Active == 1).Select(_ => _.FieldDefinition))
.IncludeFilter(visitor => visitor.PersonStatusTimeStamp.Where(_ => _.Active == 1))
.OrderByDescending(_ => _.Id)
.Take(20)
.ToArray();