【问题标题】:Comparing QUERY and EXECUTE in Dapper比较 Dapper 中的 QUERY 和 EXECUTE
【发布时间】:2016-07-19 10:11:11
【问题描述】:

我想问在使用 DAPPER 插入、更新、删除、删除、查询特定数据时,最好使用什么?在 DAPPER 中使用 EXECUTE 和 QUERY 命令时我真的很困惑..

【问题讨论】:

    标签: c# dapper


    【解决方案1】:

    这根本不应该令人困惑,特别是如果您查看 Dapper 公开的方法的签名(根据文档):

    public static IEnumerable<T> Query<T>(this IDbConnection cnn, string sql, object param = null, SqlTransaction transaction = null, bool buffered = true)
    

    查询方法专门用于在内部执行一个select语句,它可以返回IEnumerable of a type T,有执行它的选项,如果使用anonymous parameter完成,那么你不会期待任何return valueOutput parameter ,它只需要input parameter 并提供结果,该结果具有与Type T 的属性匹配的模式。如果需要return valueOutput parameter,则需要使用DynamicParameters 绑定

    public static int Execute(this IDbConnection cnn, string sql, object param = null, SqlTransaction transaction = null)
    

    Execute 方法用于执行 DML 语句,例如 Insert, Update and Delete,其目的是更改数据库中的数据。返回类型为integer,其中应包含更新的行数的值,如果在SQL Server中我们设置了Set RowCount On,则此调用将无助于返回Result Set,它仅用于DML调用。

    如果您需要多个结果集,那么我们有QueryMultiple。它返回一个GridReader,可用于返回多个 Select 语句的结果,使用 MARS(多活动结果集)的概念。

    实际上,如果您的目标只是执行一个过程,它们中的任何一个都可以,但更重要的是期望接收的结果集,它们都有不同的返回来提供结果

    【讨论】:

    • (以“非常感激”的方式点头)
    猜你喜欢
    • 2013-06-04
    • 2019-04-11
    • 1970-01-01
    • 1970-01-01
    • 2012-03-03
    • 2016-01-11
    • 1970-01-01
    • 2017-06-14
    • 1970-01-01
    相关资源
    最近更新 更多