У меня есть таблица:
-- 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
в этом случае?
В основном я хочу знать, когда я должен использовать скомпилированные запросы. Кроме того, на веб-сайте они компилируются только один раз для всего приложения?