在Dapper中比较QUERY和EXECUTE
我想问一下使用DAPPER插入,更新,删除,删除,查询特定数据时最好使用什么? 我真的很困惑在DAPPER中使用EXECUTE和QUERY命令..
这根本不应该让人感到困惑,特别是如果你看一下Dapper暴露的方法的签名(根据文档):
public static IEnumerable Query (this IDbConnection cnn, string sql, object param = null, SqlTransaction transaction = null, bool buffered = true)
查询方法专门用于在内部执行select语句,它可以返回IEnumerable of a type T
的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
,则此调用将无助于返回结果集,它仅用于DML调用。
如果您需要多个结果集,那么我们有QueryMultiple
。 返回一个GridReader
,可以使用MARS(多个活动结果集)的概念返回多个Select语句的结果。
实际上,如果你的目标只是执行一个程序,他们中的任何一个都会这样做,但更重要的是结果集期待收到什么,他们都有不同的回报来提供结果