我是一名初学者,对于最佳实践有些怀疑。我的项目是一个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