Я использую LINQ2SQL для обработки потребностей моей базы данных в ASP.Net MVC 3 проект.У меня есть отдельный model
, который содержит весь доступ к моей базе данных в своем собственном классе следующим образом:
public class OperationsMetricsDB
{
public IEnumerable<client> GetAllClients()
{
OperationsMetricsDataContext db = new OperationsMetricsDataContext();
var clients = from r in db.clients
orderby r.client_name ascending
select r;
return clients;
}
public void AddClient(client newClient)
{
OperationsMetricsDataContext db = new OperationsMetricsDataContext();
db.clients.InsertOnSubmit(newClient);
db.SubmitChanges();
}
У меня есть около 50 различных методов в этом классе, которые все создают и затем уничтожают копию моего DataContext
.Мое рассуждение состояло в том, что этот способ сэкономит память, потому что он разрушит DataContext
после того, как я использую соединение, и освободит эту память.Однако у меня есть ощущение, что может быть лучше использовать одну копию dataContext
и держать ее открытой, вместо того, чтобы снова и снова уничтожать и восстанавливать соединение.например,
public class OperationsMetricsDB
{
OperationsMetricsDataContext db = new OperationsMetricsDataContext();
public IEnumerable<client> GetAllClients()
{
var clients = from r in db.clients
orderby r.client_name ascending
select r;
return clients;
}
public void AddClient(client newClient)
{
db.clients.InsertOnSubmit(newClient);
db.SubmitChanges();
}
Какая лучшая практика в этом отношении?