我有一张表格:
-- 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
吗?
基本上,我想知道何时应使用编译查询。此外,在网站上,它们仅为整个应用程序编译一次吗?