我是一名初學者,對於最佳實踐有些懷疑。我的項目是一個Asp.net WebApi。Dapper的最佳實踐
開放連接字符串
在this線程與數據庫的連接打開這個樣子,控制器裏面,但它是一個簡單的項目,並不意味着是一個WebService:
static IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["SqlServerConnString"].ConnectionString);
但我發現其他的例子有using
聲明:
using (IDbConnection connection = new SqlConnection(stringConnection))
{
//do something
}
因爲這個項目是一個WebApi的使用聲明會更好cu'z它會Dispose
的要求?
清單數據
在同一個線程上面顯示瞭如何基於static IDbConnection db
屬性檢索列表:
var res = (List<ShippDetails>)db.Query<ShippDetails>(query, new { id });
或將要更好地使用.AsList()
?
var res = connection.Query<ShippDetails>(query, new { id }).AsList();
控制器
我所有的行動不言而喻等的作用:
[Route("FF")]
[HttpGet]
public async Task<HttpResponseMessage> get()
{
var response = new HttpResponseMessage();
int id = 1;
var res = (List<ShippDetails>)db.Query<ShippDetails>(query, new { id });
if (res.Count > 0)
{
response = Request.CreateResponse(HttpStatusCode.OK, res);
}
else
{
response = Request.CreateResponse(HttpStatusCode.NoContent);
}
var task = new TaskCompletionSource<HttpResponseMessage>();
task.SetResult(response);
return await task.Task;
}
這可能會導致一些還挺延誤?或者我處理我的行動的方式是「好」?謝謝!
你應該總是使用'using'語句和實現'IDisposable'的對象。它與「處理請求」無關,或者因爲「它的web API」而變得很好。 – Amy
明白了!謝謝艾米! –
'AsList'會更好。 – mjwills