Установить тип столбца динамически в LINQ - PullRequest
0 голосов
/ 13 июня 2011

Я хочу установить имена столбцов вывода из LINQ динамически.Вот так:

summary Rows.Field<Type>("Name")

Мне нужно сделать это, потому что я должен сделать заказ по трем столбцам на основе условия, и каждый столбец имеет 2 разных типа, таких как float, int и double

Кто-нибудь есть какие-либо предложения о том, как это можно сделать?

1 Ответ

0 голосов
/ 14 июня 2011

LINQ to SQL работает со статическими типами, хотя есть некоторые приемы, которые вы можете сделать. Вы не можете изменить тип поля на лету, кроме как использовать Convert.ToInt32 и т. Д., Чтобы изменить соответствующий тип на значение, которое вам нужно в то время, когда вы хотите его привести.

В качестве альтернативы, вы можете попробовать привести значение к каждому из трех типов из запроса:

from c in ctx
select new
{
    IntVal = c.Value,
    DoubleVal = Convert.ToDouble(c.Value),
    .
    .
}

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

НТН.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...