Я пытаюсь создать источник данных для сортировки объектов и сортировки, который перед выполнением возвращает все результаты, затем сортирует эти результаты перед фильтрацией, а затем использует методы take и skip с целью извлечения только части результатов из базы данных (сохранение на трафике базы данных). это основано на следующей статье:GridView ObjectDataSource LINQ Пейджинг и сортировка с использованием множественного запроса таблицы
http://www.singingeels.com/Blogs/Nullable/2008/03/26/Dynamic_LINQ_OrderBy_using_String_Names.aspx
Теперь мне удалось получить эту работу, даже создавая лямбда-выражения для отражения выражение сортировки возвращается из сетки даже узнать тип данных для сортировки для DateTime и Decimal ,
public static string GetReturnType<TInput>(string value)
{
var param = Expression.Parameter(typeof(TInput), "o");
Expression a = Expression.Property(param, "DisplayPriceType");
Expression b = Expression.Property(a, "Name");
Expression converted = Expression.Convert(Expression.Property(param, value), typeof(object));
Expression<Func<TInput, object>> mySortExpression = Expression.Lambda<Func<TInput, object>>(converted, param);
UnaryExpression member = (UnaryExpression)mySortExpression.Body;
return member.Operand.Type.FullName;
}
Теперь проблема у меня есть, что многие возвращения запросов присоединились таблицы, и я хотел бы отсортировать по полям из других таблиц.
Таким образом, при выполнении запроса вы можете создать функцию, которая присваивает свойствам из других таблиц свойствам, созданным в частичном классе.
public static Account InitAccount(Account account)
{
account.CurrencyName = account.Currency.Name;
account.PriceTypeName = account.DisplayPriceType.Name;
return account;
}
Так что мой вопрос, есть ли способ, чтобы присвоить значение из присоединяемой таблицы к свойству текущего табличного частичного класса? я попытался использовать.
from a in dc.Accounts
where a.CompanyID == companyID
&& a.Archived == null
select new {
PriceTypeName = a.DisplayPriceType.Name})
, но это, похоже, испортило мое SortExpression.
Любая помощь по этому поводу была бы очень признательна, я понимаю, что это сложный материал.
Thats блестящий спасибо за это. Я решил спуститься, создав MSSQL Views. Поскольку этот способ предполагает создание новых частичных классов для каждой страницы на сайте. Определенно, что-то в голове. ура – Bodar