Из-за огромного объема данных наше приложение SL4 сталкивается с проблемой замедления работы. Чтобы решить эту проблему, мы решили выполнить разбиение на страницы и сортировку на стороне сервера.
Структура базы данных:
- Таблица клиентов (customerID, CustomerLabel, personId)
- Таблица персоны (personId, FirstName)
- Датагрид имеет (CustomerLabel, FirstName)
Пейджинг на стороне сервера прошел нормально, при попытке сортировки я могу легко отсортировать по "CustomerLabel", используя:
IEnumerable<Customer> source = this.ObjectContext.Customers.Include("Person");
source = source.OrderByDescending<Customer, object>(p => GetKeySelector(p, propertyName));
private static object GetKeySelector(Customer p, string propertyName)
{
PropertyInfo propertyInfo = target.GetType().GetProperty(propertyName);
return propertyInfo.GetValue(target, null);
}
Проблема:
в то время как propertyName является "Person.FirstName" в сетке данных. "PropertyInfo" имеет значение null.
Хотел бы я, чтобы кто-нибудь помог мне в этом.