在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 TIEnumerable 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 ,则此调用将无助于返回结果集,它仅用于DML调用。

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

实际上,如果你的目标只是执行一个程序,他们中的任何一个都会这样做,但更重要的是结果集期待收到什么,他们都有不同的回报来提供结果