Enumerable.ToDictionaryを使用して、linq呼び出しから辞書を作成しています。
return (from term in dataContext.Terms
where term.Name.StartsWith(text)
select term).ToDictionary(t => t.TermID, t => t.Name);
その呼び出しは各用語全体をフェッチしますか、それともデータプロバイダーからTermIDフィールドとNameフィールドのみを取得しますか?言い換えれば、代わりに次のように記述した場合、データベーストラフィックを節約できますか?
return (from term in dataContext.Terms
where term.Name.StartsWith(text)
select new { term.TermID, term.Name }).ToDictionary(t => t.TermID, t => t.Name);