使用操作动态选择自定义列



我使用LINQ动态查询库https://weblogs.asp.net/scottgu/dynamic-linq-part-1-using-the-linq-dynamic-query-library它非常适合查询字段(可选(

IQueryable GetSource( DataTable t, String str)
{
//Working str = "new (T["ss"] as ss,T["xx"] as xx )"
//Not Working str = "new (T["ss"] as ss, T["xx"] as xx , T["ss"] +T["xx"] as yy)"
return (from T in t.AsEnumerable()
select new{T}).AsQueryable().Select(str);  
}

但当我尝试运算,如(加法-乘法-除法-合并(出错我如何进行会计操作和合并字段

您正在使用DataRowitem属性来获取字段的值。此方法返回一个无法添加的object。您需要转换为正确的类型。

"new (T["ss"] as ss, T["xx"] as xx, int(T["ss"])+int(T["xx"]) as yy)"

谢谢事实上,它必须被转换,因为它是目标

IQueryable GetSource( DataTable t, String str)
{
//Working str = "new (T["ss"] as ss,T["xx"] as xx )"
//Working str = "new (T["ss"] as ss,T["xx"] as xx , string.Concat(T["ss"], T["xx"])  as yy  )"
//Working str = ""new (T["ss"] as ss,T["xx"] as xx , decimal(T["ss"]) + decimal(T["xx"])  as yy  )""
return (from T in t.AsEnumerable()
select new{T}).AsQueryable().Select(str);  
}

最新更新