标签: refactoring dapper dbconnection
db.Open(); //db is IDbConnection instance db.InsertOrDeleteOrUpdate(...) db.Close();
是否通过委托方法隐藏db.Open()和db.Close()的好方法?例如:
dbHelper.do(db => db.InsertOrDeleteOrUpdate(...));
在这种情况下你做了什么?
答案 0 :(得分:0)
冗余代码不是此代码中的唯一问题。您的代码正在针对每个操作访问数据库。如果您的DBServer部署在远程计算机上,这将达到性能。请参阅this answer。
您是否遇到过UnitOfWork模式?这是处理更高级别连接的非常好的解决方案。
Connection Factory是另一个很好的选择,它可以与UnitOfWork一起使用。但我个人更喜欢UnitOfWork。
请参阅this答案,了解UnitOfWork的示例代码。
从上面选择后,通过每个请求使用"连接可以轻松减少冗余。图案。您需要在代码中识别集中位置以创建DalSession以及在何处处置它。
DalSession