< /ol>
Чтобы лучше проиллюстрировать это, позвольте мне показать вам код < /p>
Код: Выделить всё
public class Query
{
public class OrderBy
{
public Expression Clause { set; get; } // Order By clause
public bool Descending = true;
}
public Expression Where { set; get; } // Where clause
public IList OrderBys { set; get; } // Where clause
public Query()
{
OrderBys = new List();
}
}
public IEnumerable FindBy(Query query)
{
IQueryable Temp = GetObjectSet();
if (query.Where != null)
Temp = Temp.Where(query.Where);
foreach (var OrderByThis in query.OrderBys)
{
if (OrderByThis.Descending)
Temp = Temp.OrderByDescending(OrderByThis.Clause);
else
Temp = Temp.OrderBy(OrderByThis.Clause);
}
return Temp.ToList();
}
Query query = new Query();
Query.OrderBy clause1 = new Query.OrderBy();
clause1.Clause = m => m.Username;
Query.OrderBy clause2 = new Query.OrderBy();
clause2.Clause = m => m.DateOfBirth;
query.OrderBys.Add(clause1);
query.OrderBys.Add(clause2);
< /code>
i.e. Добавление ряда различных полей разных типов.>
Подробнее здесь: https://stackoverflow.com/questions/119 ... rby-lambda
Мобильная версия