Ich bin ein Anfänger mit Dapper und ich habe einige Zweifel über Best Practices. Mein Projekt ist ein Asp.net WebApi.Gute Praktiken mit Dapper
Eröffnung Connection String
In this Gewinde wird die Verbindung mit der Datenbank wie folgt geöffnet, im Inneren des Controllers, aber es ist ein einfaches Projekt, ein WebService, um nicht gemeint:
static IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["SqlServerConnString"].ConnectionString);
Aber ich fand andere Beispiele mit using
Aussage:
using (IDbConnection connection = new SqlConnection(stringConnection))
{
//do something
}
Da dieses Projekt ein WebApi ist, wäre die using-Anweisung besser, weil es die Anforderung Dispose
hätte?
Daten Eintrag
Im selben Thread oben zeigt, wie eine Liste abgerufen werden basierend auf static IDbConnection db
Eigenschaft:
var res = (List<ShippDetails>)db.Query<ShippDetails>(query, new { id });
Oder wäre besser .AsList()
zu benutzen?
var res = connection.Query<ShippDetails>(query, new { id }).AsList();
Die Aktion des Controllers
Für alle meine Aktion es geht so:
[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;
}
Es some kinda von Verzögerung verursachen könnte? Oder die Art, wie ich mit meiner Aktion umgehe, ist "gut"? Vielen Dank!
Sie sollten immer eine Anweisung 'using' mit Objekten verwenden, die' IDisposable' implementieren. Es hat nichts damit zu tun, "die Anfrage zu stellen" oder "gut zu sein", weil es "seine Web-API" ist. – Amy
hab es geschafft! Danke Amy! –
'AsList' wäre besser. – mjwills