23 Stimmen

Wann sollte ich eine CompiledQuery verwenden?

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?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X