私はテーブルを持っています:
-- Tag
ID | Name
-----------
1 | c#
2 | linq
3 | entity-framework
次のメソッドを持つクラスがあります。
IEnumerable<Tag> GetAll();
IEnumerable<Tag> GetByName();
この場合、コンパイル済みクエリを使用する必要がありますか?
static readonly Func<Entities, IEnumerable<Tag>> AllTags =
CompiledQuery.Compile<Entities, IEnumerable<Tag>>
(
e => e.Tags
);
次に、私のGetByName
方法は次のようになります。
IEnumerable<Tag> GetByName(string name)
{
using (var db = new Entities())
{
return AllTags(db).Where(t => t.Name.Contains(name)).ToList();
}
}
コードを生成しSELECT ID, Name FROM Tag
て実行Where
します。CompiledQuery
それともこの場合は避けるべきですか?
基本的に、コンパイル済みクエリをいつ使用する必要があるかを知りたいです。また、Web サイトでは、アプリケーション全体に対して 1 回だけコンパイルされますか?