В проекте MVC 3 я использую EF4, IoC и Agatha-RRSL в качестве уровня обслуживания.Dapper. IoC, Testing и Agatha
К счастью, на этой неделе я нашел Dapper, и я перехожу из EF4 в Dapper!
Обычно я впрыснуть Generic Repository в моих обработчиках Request Агата ...
Но как я должен использовать Щеголеватый?
1) Следует ли вводить IDbConnection в обработчик Agatha? Затем внутри обработчика я использую его с помощью Dapper Query или Dapper Execute? Можно ли это проверить? А насчет насмешек?
2) Должен ли я создать общий репозиторий для Dapper? Возможно, хранилище будет что-то вроде:
public class Repository {
private IDbConnection _connection;
public Repository(IDbConnection connection) {
_connection = connection;
} // Repository
public Int32 Execute(String sql, dynamic param = null) {
return _connection.Execute(sql, param);
} // Execute
// Query code
}
И в IDbConnection будет введен здесь.
И репозиторий будет введен внутри обработчиков.
Не знаете, как это проверить ...
3) Должен ли я просто поместить весь мой код внутри обработчика?
using (SqlConnection connection = new SqlConnection(connectionString)) {
connection.Execute(@"insert Roles(Name) values (@name)", new { name = "Role" });
}
Но как насчет тестирования?
4) Я понимаю, что Dapper использует статические методы. Разве это не вызывает проблем с памятью?
Извините за так много вопросов ... Я пытаюсь сделать это правильно.
Спасибо, Miguel
Для ввода записей вы также можете посмотреть Dapper-Rainbow. (Доступно на NuGet). PS: 3) - dapper восстанавливает открытое соединение. – Alex
Да, я только что нашел Dapper-Rainbow ... Но я рассматриваю возможность взломать этот код в 3: База данных, которая содержит соединение, сеанс трансакций и репозиторий для этих методов. Как вы думаете? Я думаю, что это лучше для тестирования. Как вы думаете? Я отправлю свой код здесь ... –
что вы сделали финнали? – GorillaApe