より複雑なクエリを指定できるように、LinqDataSource の OnSelecting メソッドを使用して最初の刺し傷を取り、次のように記述しました。
protected void CategoriesDataSource_OnSelecting(object sender, LinqDataSourceSelectEventArgs e)
{
using (DataLayerDataContext db = new DataLayerDataContext())
{
e.Result = (from feed in db.Feeds
where feed.FeedName.StartsWith("Google")
select feed.MainCategory).Distinct();
}
}
もちろん、問題は using 句が DataLayerDataContext を Dispose することです。「解決策」はそれなしで書くことですが、そうするとコンテキストがタイムリーに破棄されず、ガベージ コレクションが実行されるまで多数の接続が開いたままになるのではないかと心配しています。
私はこの分野の専門家ではないので、これが本当の問題なのか、それとも何も心配していないのかについて何かコメントはありますか?