У меня есть несколько статических методов, которые выполняют простые операции, такие как вставка или удаление записи.Все эти методы следуют этому шаблону using
:
public static UserDataModel FromEmail(string email)
{
using (var db = new MyWebAppDataContext())
{
db.ObjectTrackingEnabled = false;
return (from u in db.UserDataModels
where u.Email == email
select u).Single();
}
}
У меня также есть несколько методов, которые должны выполнять несколько операций, использующих DataContext
:
public static UserPreferencesDataModel Preferences(string email)
{
return UserDataModel.Preferences(UserDataModel.FromEmail(email));
}
private static UserPreferencesViewModel Preferences(UserDataModel user)
{
using(var db = new MyWebAppDataContext())
{
var preferences = (from u in db.UserDataModels
where u == user
select u.Preferences).Single();
return new UserPreferencesViewModel(preferences);
}
}
Мне нравитсячто я могу разделить простые операции на искусственно хранимые процедуры в моих моделях данных с помощью статических методов, таких как FromEmail()
, но меня беспокоит стоимость Preferences()
вызова двух соединений (верно?) через два оператора using DataContext
.
Должен ли я быть?То, что я делаю, менее эффективно, чем использование одного оператора using(var db = new MyWebAppDataContext())
?