Как и другие операторы запросов, Concat
не меняет существующую последовательность - она возвращает новую последовательность.
Итак, эти строки:
if (obj1.Count() > 0)
obj.Concat(obj1);
if(obj.Count() > 0)
objret.Concat(obj);
должно быть
if (obj1.Count() > 0)
objret = objret.Concat(obj1);
if(obj.Count() > 0)
objret = objret.Concat(obj);
Я не уверен, насколько хорошо IQueryable
справится с этим, учитывая, что вы смешиваете LINQ to SQL (? Возможно, Entities) с Enumerable.AsQueryable
, заметьте,,Учитывая, что вы уже выполняете запросы в некоторой степени из-за вызовов Count()
, рассматривали ли вы вместо этого создание List<T>
?
(Вам не нужно выполнять Count()
ввсе - просто позвоните List<T>.AddRange(obj1)
и то же самое для obj
.)
Как упоминал jeroenh, в идеале было бы неплохо использовать решение, которое могло бы сделать все это, что база данных вообще не зацикливается в вашем коде C #.