繁体   English   中英

对于谓词,小巧玲珑会做什么?

What will dapper do with a predicate?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

如果我有一个返回List of Dogs方法, DapperWhere谓词转换为SQL Where? 或者它先得到所有的狗然后过滤列表?

public IList<Dog> GetDogsBy(Func<Dog, bool> predicate)
{
    return db.Query<Dog>("SELECT * FROM Dog",null).Where(predicate).ToList();
}
2 个回复

这取决于解析Where时的重载决策。

如果对Query的调用结果是List<Dog>并且您using System.Linq; 指令和参数是一个代表,那么Where将解析到LINQ到对象的版本Where 因此,select查询将在服务器上运行,然后Where将在客户端上运行。

如果Query的结果是IQueryable<Dog>且参数是Expression则重载决策将选择Where与现有查询组合。 执行该查询时, Where运行在查询提供程序选择运行它的任何一侧,通常是服务器。

当谈到SQL trnalsation时,虽然可以翻译表达式树 ,但编译后的方法却不能。 这是因为一旦编译了方法,就需要读取IL来执行转换,而不是通过.NET API公开,而表达式树明确地设计为使用元代码进行导航以便进行转换。

因为你传入一个Func<...>而不是一个Expression<Func<...>> ,你传递的是那个编译过的方法,因此代码无法获取表达式树,因此上面的代码要么将无法工作或将在您的本地计算机上执行。

如果要用方法签名替换

public IList<Dog> GetDogsBy(Expression<Func<Dog, bool>> predicate)

然后它可能能够执行该转换,具体取决于Dapper的语义。

1 小巧玲珑。 分页

我正在尝试 Dapper ORM,并且正在查询 Posts 表。 但我想获得分页结果...... 1 - 我该怎么做? 这不是有帮手吗? 2 - Dapper Query 可以返回 IQueryable 吗? 谢谢你,米格尔 ...

2 小巧玲珑

使用dapper时,有没有理由不能以正确的顺序检索以下代码? 它总是在不应用订购的情况下返回。 我可以直接将sortOrder和sortDirection放入字符串中 但我不确定这会如何影响dapper,因为我相信它有自己的查询计划缓存 。 另外,有没有办法查看dap ...

3 小巧玲珑没有添加参数

我正在尝试使用Dapper进行复杂查询,以消除以前存在于NH中的任何丢失的开销。 我有以下查询(注意这已经大大缩小): 这是通过我们的存储库调用的: 我们对DapperExec的实现如下: 但是Dapper似乎没有将参数添加到查询中,因此我们得到了语法错误。 ...

4 小巧玲珑的简单映射

表: 类别: 如何通过Dapper与Customers一起获取所有Documents ? 这给了我所有文件,但客户是空的(当然): 编辑 - 类似但更高级的映射问题: Dapper中间映射 ...

5 选择使用小巧玲珑

我的查询使用dapper有问题,是否有人想象帮助我并说出我做错了什么,目前在我提出错误点的日期显示错误,如何正确纠正? 谢谢大家的帮助 这是我目前的代码 这是我得到错误的结果 ...

2018-08-30 07:31:08 3 90   c#/ dapper
7 配有MVCMiniProfiler的小巧玲珑

我想将MVCMiniProfiler与Dapper一起使用。 除了在“使用Profiler.Step”块中包装来自dapper的“查询”调用之外,这是否可能? 我有这个基本的Dapper电话: MiniProfiler示例显示了这一点 我陷入困境的是在ProfiledDb ...

8 小巧玲珑的bool类型返回规则

我使用dapper ORM。所以我使用两个规则Query&QuerySingle。 查询返回列表&QuerySingle返回单个对象。 所以,我想得到一个bool类型。(其实我想得到一个bool是真或假记录) 我的查询 那么,我怎样才能写bool类型返回? ...

9 小巧玲珑的空间地理类型

我正在编写一些空间示例,并决定给Dapper一个机会,虽然EF有空间支持,我很想再次控制我的SQL(感谢Sam和Marc)。 但是,我需要能够拥有支持DbGeography类的POCO。 例如 : 我的谷歌foo一直让我失望,我能找到的最接近的匹配就是这个问题,虽然它只是为了增加 ...

10 小巧玲珑的传递动态的参数

我目前正在为Dapper编写包装器。 此包装器强制每个查询都是存储过程。 在我的包装器中,我这样调用Dapper(有问题): 当我尝试将“param”传递给Query时,它告诉我“无法解析符号查询”。 当我删除param pass时,它工作正常。 任何人都可以指出我正确的 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM