Сортировка LINQ для подкатегории, преобразованной в CSV

Вопрос:

У меня есть модель EF (обратите внимание на частичные классы для ясности)

public class Product
{
public System.Guid ProductID { get; set; }
public string Product{ get; set; }
public virtual ICollection<Module> Modules { get; set; }
[NotMapped]
public string ModulesCSV
{
get
{
string retList = "";
foreach (Module aModule in Modules)
{
if (retList.Length > 0)
retList += ", ";
retList += aModule.Module.Trim ();
}
return retList;
}
}
}

теперь мне нужно сортировать в CSV, а также в других столбцах, я понимаю, что ссылка на sql имеет проблемы с этим. Моя нормальная сортировка не может этого сделать, мне было интересно, знает ли кто-нибудь хороший способ сделать это va LINQ и может ли поделиться ею?

Текущая строка сортировки – это “сортировка” – это имя столбца, а “sortdir” – “ASC” или “DESC”, который выполняет обработку для других столбцов. query = db.Products.AsExpandable(). Где (предикат).OrderBy(sort + “” + sortdir);

Лучший ответ:

Не хорош или эффективен, но если (sort! = “CSV”)//в качестве столбца non ddb нужно сортировать по списку query = db.Products.AsExpandable(). Где (предикат).OrderBy(sort + “” + sortdir ); else {query = db.Products.AsExpandable(). Где (предикат);

            if (sortdir=="ASC")
            {
                query = db.Products.AsExpandable().Where(predicate).ToList<Product>().AsQueryable <Product> ();
                query = query.OrderBy(r => r.GetType().GetProperty(sort).GetValue(r, null));
            }
            else
            {
                query = db.Products.AsExpandable().Where(predicate).ToList<Product>().AsQueryable <Product> ();
                query = query.OrderByDescending(r => r.GetType().GetProperty(sort).GetValue(r, null));
            }
        }

Оцените статью
TechArks.Ru
Добавить комментарий