當實現使用小巧玲瓏的ORM庫模式,我目前做如下:差異
private readonly ConnectionStrings _connectionStrings;
private IDbConnection _db;
public CustomerRepository(IOptions<ConnectionStrings> connectionStrings)
{
_connectionStrings = connectionStrings.Value;
_db = new SqlConnection(_connectionStrings.DefaultConnection);
}
public Customer Find(int id)
{
return this._db.Query<Customer>("SELECT * FROM Contacts WHERE Id = @Id", new { id }).SingleOrDefault();
}
可有人請告訴我是否應該這樣做,或者如果我應該在每個存儲庫函數中使用帶有新SqlConnection的using語句。
我假設我的上面的代碼需要類似UnitOfWork的東西才能生效嗎?而且在完成運行所有需要的存儲庫功能時,也可以採用某種方式處理連接。
在每種方法中使用'using'語句。不要重用連接或任何ADO.NET對象。 [相關](http://stackoverflow.com/questions/9705637/executereader-requires-an-open-and-available-connection-the-connections-curren/9707060#9707060) –
使用'using'語句。 – stuartd
感謝球員,但你能解釋爲什麼我看到一些例子,如何時使用EF,通過依賴注入傳入上下文,然後使用?還有可能通過幾個使用語句來實現UnitOfWork?我正在考慮使用以下方法:https://github.com/timschreiber/DapperUnitOfWork –