我想问一下使用DAPPER进行插入,更新,删除,删除,查询特定数据时最好使用什么?我在DAPPER中使用EXECUTE和QUERY命令时感到很困惑。
答案 0 :(得分:13)
这根本不应该让人感到困惑,特别是如果你看一下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
完成,那么你不期望任何{{1}或return value
,它只需要Output parameter
并提供结果,该结果具有与input parameter
的属性匹配的模式。如果需要Type T
或return value
,则需要使用Output parameter
绑定
DynamicParameters
Execute方法用于执行DML语句,如public static int Execute(this IDbConnection cnn, string sql, object param = null, SqlTransaction transaction = null)
,其目的是更改数据库中的数据。返回类型是Insert, Update and Delete
,它应该包含更新的行数的值,如果在SQL Server中我们设置了integer
,则此调用将无助于返回结果集,它仅用于DML调用
如果您需要多个结果集,那么我们有Set RowCount On
。返回QueryMultiple
,可以使用MARS(多个活动结果集)的概念返回多个Select语句的结果。
实际上,如果你的目标只是执行一个程序,他们中的任何一个都会这样做,但更重要的是结果集期待收到什么,他们都有不同的回报来提供结果