2016-03-31 3 views
3

Я хотел бы спросить, что лучше всего использовать при вставке, обновлении, удалении, удалении, QUERY SPECIFIC DATA с помощью DAPPER? Я действительно запутался в использовании EXECUTE и команда QUERY в щеголеватый ..Сравнение QUERY и EXECUTE в Dapper

ответ

8

Это не должно сбивать с толку вообще, особенно, если вы посмотрите на подпись методов, раскрываемых Dapper (согласно документации):

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

метод запроса специально предназначен для выполнения оператора выбора внутренне, который может вернуть 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 и может использоваться для возврата результата нескольких операторов Select, используя концепцию MARS (множественный активный набор результатов).

Практически, если ваша цель просто выполнить процедуру, любой из них будет делать, но что более важно то, что набор результатов с нетерпением ожидаем получить, все они имеют разную отдачу, чтобы обеспечить результаты

+1

(кивает головой в «очень обязательном» виде) –

+0

Спасибо @Marc Gravell –

Смежные вопросы