【发布时间】:2016-07-19 10:11:11
【问题描述】:
我想问在使用 DAPPER 插入、更新、删除、删除、查询特定数据时,最好使用什么?在 DAPPER 中使用 EXECUTE 和 QUERY 命令时我真的很困惑..
【问题讨论】:
我想问在使用 DAPPER 插入、更新、删除、删除、查询特定数据时,最好使用什么?在 DAPPER 中使用 EXECUTE 和 QUERY 命令时我真的很困惑..
【问题讨论】:
这根本不应该令人困惑,特别是如果您查看 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 value或Output parameter ,它只需要input parameter 并提供结果,该结果具有与Type T 的属性匹配的模式。如果需要return value 或Output 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(多活动结果集)的概念。
实际上,如果您的目标只是执行一个过程,它们中的任何一个都可以,但更重要的是期望接收的结果集,它们都有不同的返回来提供结果
【讨论】: