Я использую запрос Dynamic Linq. Я динамически генерирую условие запроса в виде строки и перехожу к запросу. Ниже приведен код, который я использую.Динамический запрос LINQ не работает должным образом с полем таксономии
var q = dc.ListDirectory.AsQueryable().Where(condition).OrderBy("Title");
foreach (var p in q)
{
Console.WriteLine(p.Title);`enter code here`
}
Этот запрос workes отлично (с другими строковыми полей даже с большим объемом данных) для полой таксономии исключения. Поскольку я не смог напрямую составить поле таксономии, я только сравнил свою строку. Условие для области таксономии, как
Type.Label = "Текст"
Quering с таксономической полевых условиях: С только 10 нет. элементов в списке работает нормально.
Но это терпит неудачу, когда нет. элементов в списке составляет около 419.
Что я нашел, он начинает выполнение цикла foreach еще до получения значения в var q и дает ссылку на объект не установлен ... ошибка.
Любой ключ?
Итак, где вы получаете 'NullReferenceException'? В заявлении LINQ? Или в петле foreach? –
В цикле foreach и только с условием поля таксономии (когда ему нужно идти с 419 элементами списка). – user2966878
Несколько непонятных вещей: [1] 'Type.Label =« Текст »- это не сравнение, а назначение, опечатка? [2] 'Where()' принимает какой-то «Func» ... кусок кода, упомянутый в [1], не является одним из таких, так что вы на самом деле проходите? [3] Если ваш код в цикле 'foreach' на самом деле является тем, что находится в вашей программе, и вы получаете« NullReferenceException », существует только одна вещь, которая может быть нулевой,' p', поэтому каким-то образом вы LINQ оператор возвращает нулевые элементы, но вам трудно помочь, не зная, что вы запрашиваете. Если вы предоставите более подробную информацию, отредактируйте сам вопрос. –