/ / Entity Framework 4 (Zuordnungen mit Filtern konfiguriert) - c #, .net, entity-framework, ado.net

Entity Framework 4 (mit Filtern konfigurierte Assoziationen) - c #, .net, entity-framework, ado.net

Ich habe eine Benutzerentität, die eine Sammlung enthältvon Umfrageeinheiten. Ich möchte, dass die Assoziation einen Filter für die Beziehung enthält, z. B. "IsCompleted". Wenn ich also die Sammlung sammle, geschieht diese Filterung.

Ist das etwas, über das wir die Kontrolle haben?

Vielen Dank!

Antworten:

0 für die Antwort № 1

Wenn Sie ein DB-Backend verwenden, das Ansichten unterstützt, können Sie die Ansicht als Quelle für die Sammlung von Umfrageentitäten verwenden. Nutzen Sie die Leistungsfähigkeit der Datenbank, um diese Filterung für Sie durchzuführen.


0 für die Antwort № 2

Laden von Assoziationen für eine Entität immer gerechtruft sie alle auf, entweder weil Sie bei der ersten Abfrage Include verwendet haben, nach dem Faktum Load genannt wurden oder weil das Lazy-Loading dies verursacht hat. Das Konzept der Navigationseigenschaft nimmt dieses Verhalten an.

E.J. Brennans Antwort würde gut funktionieren. Wenn Sie sich nicht darum kümmern, alle Umfragen hinter den Kulissen zu laden (aus Gründen der Leistung / des Speichers oder aus anderen Gründen), können Sie auch in Betracht ziehen, eine separate Eigenschaft über eine teilweise Klassendefinition in Ihrer Entität zu erstellen, die die gefilterte Liste zurückgibt.

public partial class User
{
public ICollection<Survey> CompletedSurveys
{
get { return Surveys.Where(s => s.IsCompleted); }
}
}