Возможный дубликат:
Объявление funcдинамически Я пытаюсь создать запрос, используя linq-to- sql и, чтобы обеспечить возможности сортировки, я написал что-то вроде этого:
private Dictionary
>> OrderDict { get; set; } OrderDict = new Dictionary >>(); OrderDict.Add("Date", p => (DateTime)p.RequestDateTime); OrderDict.Add("Username", p => (string)p.CdUsername); OrderDict.Add("Portfolio", p => (string)p.CdPortfolio); OrderDict.Add("Url", p => (string)p.RequestedUrl); OrderDict.Add("Result", p => (bool)p.RequestResult); OrderDict.Add("Duration", p => (float)p.RequestDuration); private IQueryable SetOrder(string orderBy, bool orderDirection, IQueryable query) { if (orderDirection) return query.OrderByDescending(OrderDict[orderBy]); else return query.OrderBy(OrderDict[orderBy]); } Моя цель - использовать функцию SortOrder для сортировки запроса. Основная проблема в том, что Func возвращает объект, а linq не может сортировать элементы этого типа. Мне действительно нужно использовать объект в качестве возвращаемого типа, потому что мне нужно сортировать по широкому диапазону типов. Можно ли немного изменить этот код и заставить его работать?
Спасибо,
Gio