在LINQ中动态设置列类型

时间:2011-06-13 14:56:43

标签: linq linq-to-sql

我想动态设置LINQ输出的列名。像这样:

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

我需要这样做,因为我必须根据条件在三列上执行订单,每列有两种不同的类型,例如floatintdouble < / p>

有没有人对如何做到这一点有任何建议?

1 个答案:

答案 0 :(得分:0)

LINQ to SQL处理静态类型,尽管你可以做一些技巧。您不能动态更改字段的类型,除了使用Convert.ToInt32等将相应的类型更改为您想要投射它时所需的值。

或者,您可以尝试将值转换为查询中的三种类型中的每一种:

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

通过这种方式,您可以适当地进行所有三次演员,并且可以吸入正确的字段。使用记录时,您甚至可以使用反射包装来获得与您想要的类似的东西。我不知道转换是否支持LINQ,但您应该能够做类似的事情。

HTH。