レコードの挿入や削除などの簡単な操作を実行する静的メソッドが多数あります。これらの方法はすべてusing
のこのテンプレートは、次のとおりです。LINQ to SQL:DataContextの再利用
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()
が2つの接続を呼び出す(右?)のコストを心配しています(using DataContext
)。
私はする必要がありますか?単一のusing(var db = new MyWebAppDataContext())
文を使用するより効率が悪いですか?
「オーバーヘッド」とは何ですか? – AgileMeansDoAsLittleAsPossible