Ich habe einen Tisch:
-- Tag
ID | Name
-----------
1 | c#
2 | linq
3 | entity-framework
Ich habe eine Klasse, die die folgenden Methoden haben wird:
IEnumerable<Tag> GetAll();
IEnumerable<Tag> GetByName();
Sollte ich in diesem Fall eine kompilierte Abfrage verwenden?
static readonly Func<Entities, IEnumerable<Tag>> AllTags =
CompiledQuery.Compile<Entities, IEnumerable<Tag>>
(
e => e.Tags
);
Dann wird mein GetByName
Methode wäre:
IEnumerable<Tag> GetByName(string name)
{
using (var db = new Entities())
{
return AllTags(db).Where(t => t.Name.Contains(name)).ToList();
}
}
Das erzeugt eine SELECT ID, Name FROM Tag
und ausführen Where
auf den Code. Oder sollte ich vermeiden CompiledQuery
in diesem Fall?
Im Grunde möchte ich wissen, wann ich kompilierte Abfragen verwenden sollte. Auch auf einer Website sind sie nur einmal für die gesamte Anwendung kompiliert?