Многие операторы включения в Entity Framework приводят к исключению - PullRequest
0 голосов
/ 05 июля 2019

При использовании для многих 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...