EF Динамическое поле Выберите с помощью LINQ - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть следующий выбор:

var sortedCodes = Codes
.Where(c => c.Active)
.OrderByDescending(x => x.SortOrder)
.Select(b => new { b.Display, b.NumericCode, b.SortOrder })
.Distinct()
.ToList();

Код таблицы содержит много столбцов, таких как NumericCode, TextCode, AlphaCode, ThreeCode, FourCode, FiveCode.Я использую эту таблицу для создания выбора в моем пользовательском интерфейсе.Есть ли способ, которым я могу создать некоторый динамический код, чтобы я мог передать имя столбца для использования в качестве значения?

Вышеуказанный выбор будет выглядеть так:

.Select(b => new { b.Display, "TextCode", b.SortOrder })

Я думалЯ мог бы использовать выражение, но я не думаю, что это именно то, что мне нужно, так как на самом деле это лямбда-печать в качестве значения.

var arg = Expression.Parameter(typeof(Code), "b");
var body = Expression.Property(arg, valueColumn);
var lambda = Expression.Lambda<Func<Code, string>>(body, arg);

var sortedCodes = Codes
.Where(c => c.Active)
.OrderByDescending(x => x.SortOrder)
.Select(b => new { b.Display, Value=lambda, b.SortOrder })
.Distinct()
.ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...