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