选择子句问题中的动态列

Posted

技术标签:

【中文标题】选择子句问题中的动态列【英文标题】:Dynamic Column in Select Clause Issue 【发布时间】:2015-11-16 02:58:44 【问题描述】:

我正在使用System.Linq.Dynamic,这是我的代码:-

using System.Linq.Dynamic;
string para = "Cat";
var paraData = ctx.tblEmployee.Where("id=6").Select("new(" + para + ")");
string value = paraData;

在上面的代码中,我没有得到value,但我得到了一个sql查询字符串。

如何获取动态列的值?

【问题讨论】:

你为什么不用 Dapper 之类的东西来执行查询字符串? 【参考方案1】:
using System.Linq.Dynamic;
string para = "Cat";
var paraData = (IEnumerable<string>)ctx.tblEmployee.Where("id=6").Select(para);
string value = paraData.FirstOrDefault();

要使用动态表达式的结果,您必须转换结果。结果是一个列表(不是真的,而是 IQueryable- 或 IEnumerable- 集合,即使结果仅包含一项。 如果没有员工的 id 为 6,则要获得一个 Item,您必须附加 First() 或更好的 FirstOrDefault() 以防止异常。

【讨论】:

以上是关于选择子句问题中的动态列的主要内容,如果未能解决你的问题,请参考以下文章

如何在 EXECUTE IMMEDIATE 中使用动态 where 子句

根据第三列动态选择两列之一[重复]

基于仪表板提示选择的 BI 答案/视图中的动态列选择

透视动态列[重复]

使用 Google 表格中的查询进行动态列选择

动态选择 django orm 列