我目前在Azure网站& Azure SQL上,一些文档建议尽可能多地使用异步,因为云服务的延迟更高,流量也有下降的机会,但同时也警告说异步/等待有开销。
我该不该..。
Query和OpenConnection?GetById、GetAll等)中重复了这么多?有没有更优雅的解决方案?我对dapper.net非常陌生,我想得到一些关于我当前实现的反馈。
StoreRepositorypublic class StoreRepository
{
public async Task<Store> GetById(int id)
{
using (var conn = await SqlHelper.GetOpenConnectionAsync())
{
const string sql = "Select * from Stores where Id = @Id";
var res = await conn.QueryAsync<Store>(sql, new { Id = id });
return res.FirstOrDefault();
}
}
...
}public async Task<ActionResult> Details(int id)
{
var db = new StoreRepository();
var store = await db.GetById(id);
return View(store);
}internal static class SqlHelper
{
public static readonly string connectionString = ConfigurationManager.ConnectionStrings["ttcn"].ConnectionString;
public async static Task<DbConnection> GetOpenConnectionAsync()
{
return new ProfiledDbConnection(await GetOpenConnection(false), MiniProfiler.Current);
}
private async static Task<SqlConnection> GetOpenConnection(bool mars = false)
{
var cs = connectionString;
if (mars)
{
SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder(cs);
scsb.MultipleActiveResultSets = true;
cs = scsb.ConnectionString;
}
var connection = new SqlConnection(cs);
await connection.OpenAsync();
return connection;
}
}发布于 2014-07-29 04:36:00
IStoreRepository是个好主意。https://codereview.stackexchange.com/questions/58337
复制相似问题