这个问题与this question相似,但并不完全相同。

我可以在linq-to-sql数据上下文中进行动态查询,并以IDictionary 返回结果,其中键是列名吗?

有点像这样(不编译,但说明了意图)

IDictionary<string, object> data = new Dictionary<string, object>(StringComparer.OrdinalIgnoreCase);
data = db.ExecuteQuery<IDictionary<string, object>(queryString, params).ToDictionary(
    k=>nameOfColumn,
    k=>k
)


显然,我完全不在data = db.ExecuteQuery ...的地图中。
我有一种感觉,executeQuery不是我应该使用的东西,因为这个已经尝试进行到对象的映射。对于这种特殊的用例,我不想要那样。

最佳答案

您需要包括一个对象类型才能实现。怎么样:

var data = db.ExecuteQuery<SomeType>(queryString, params)
          .ToDictionary(st => st.SomeKey);

关于c# - 使用linq到IDictionary <string,object>的动态查询?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1356773/

10-09 01:38