Как выполнить динамическое выделение столбца, который я выбираю динамически? - PullRequest
3 голосов
/ 14 апреля 2011

Я использую динамический linq и динамически выбираю столбец. Мне нужно сделать внятное в этом. Как я мог это сделать?

var qry = tbl.AsEnumerable().AsQueryable()
             .Select("new(it[\"" + this.UniqueName + "\"]
             .ToString() as " + this.UniqueName + ")");

Спасибо.

1 Ответ

4 голосов
/ 14 апреля 2011

Вместо использования

as " + this.UniqueName + "

do

as someFixedColumnName

и запустите для этого условие Distinct(), используя обычный Linq.


Кроме того, вы можете попробовать этот метод расширения:

public static IQueryable DynamicDistinct(this IQueryable source)
{
    if (source == null) throw new ArgumentNullException("source");
    return source.Provider.CreateQuery(
        Expression.Call(
            typeof(Queryable), "Distinct",
            new Type[] { source.ElementType },
            source.Expression));
}
...