與下面的代碼LINQ查詢,我沒有任何問題進行排序FirstName
和LastName
但我希望能夠排序Name
和Code
了。有沒有一種解決方案來排序屬性,這個屬性是一個「複雜的對象」,而不是一個原始的?對財產動態排序依據和複雜的對象
感謝,
我的對象:
public class Person
{
public Language Language { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class Language
{
public string Name { get; set; }
public string Code { get; set; }
}
我有這樣的一段代碼進行排序:
var type = typeof(T);
var property = type.GetProperty("OrderBy");
var parameter = Expression.Parameter(type, "p");
var propertyAccess = Expression.MakeMemberAccess(parameter, property);
var orderByExp = Expression.Lambda(propertyAccess, parameter);
MethodCallExpression resultExp =
Expression.Call(typeof(Queryable),
"OrderBy",
new Type[] { type, property.PropertyType },
source.Expression,
Expression.Quote(orderByExp));
return source.Provider.CreateQuery<T>(resultExp);
代碼中沒有子類。名稱和代碼是您的Person類的屬性的屬性。 –
@MaurícioLinhares讓我重述一下......並不是所有的時間都是「語言」對象,但可以是另一種類型。 –
@ Kris-I:請編輯問題的標題,然後 - 我閱讀它也尋找子類。 –