【发布时间】:2014-10-23 13:36:13
【问题描述】:
我们正在研究使用 LinQ 查询 Dapper 创建的内部动态集合。问题是:
如何使用 Scott Guthrie 动态 linq(或其他技术,如果可能)对集合执行动态 LinQ? (http://weblogs.asp.net/scottgu/dynamic-linq-part-1-using-the-linq-dynamic-query-library)
这就是我们想要做的(非常简化):
使用 Dapper 返回一个动态集合(这里称为行):
rows = conn.Query(“select ACCOUNT, UNIT, AMOUNT from myTable”);
如果我们使用“静态”LinQ 查询就没有问题。所以这很好用:
var result = rows.Where(w => w.AMOUNT > 0);
但我们想使用动态 Linq 编写类似的东西:
var result = rows.Where("AMOUNT > 0");
但我们无法让它发挥作用。
我们得到的错误是:
“对象”类型中不存在属性或字段“AMOUNT”
(我们也尝试了很多其他语法 - 但无法让它发挥作用)
请注意:我们不希望在 Dapper 从数据库请求数据时使用动态 SQL(这很容易)。我们想在 Dapper 查询返回的集合上执行许多小的动态 Linq 语句。
难道 ScottGu 动态 Linq 只适用于“LinQ to SQL”?
是否有其他替代方法可以实现相同的目标? (性能是关键问题)
/埃里克
【问题讨论】: