Entity Framework - Erste Anzahl der Untergeordneten Datensätze aus einer Liste von Entitäten

Ich habe gekämpft, um meinen Kopf um diese für eine Weile, also dachte ich würde post hier oben.

War, wenn ich ein 1->Viele-Beziehung zwischen einem Übergeordneten Objekt und eine Kind-Objekt. Dann abgerufen, meine Übergeordnete Objekte aus meinem Kontext in ein List-Objekt. Ich iteriere durch die Liste setzen eines "virtuellen" - Eigenschaft auf jedes Kind nehmen. Die "virtuelle" Eigenschaft ist eine Aufzählung, definiert ist, definiert einen status, ie Neu, Unverändert Gültigkeit. Seine Implementierung als eine Eigenschaft, eine Abstrakte Klasse, die die Entitäten umzusetzen.

Sobald ich dies getan haben, möchte ich, um die Anzahl aller untergeordneten Objekte haben den status " sage "Neu".

Parent.Sum(p => p.Child.Where(c => c.Status == New).Count())

Das erste problem ist, dass dies geht zurück auf die Datenbank einmal für jeden übergeordneten Datensatz und ruft alle verknüpften untergeordneten Datensätze.

Zweite Problem ist, dass, weil das Feld Status ist nicht eine tatsächliche Datenbank-Feld, die Werte sind alle in den Aufzählungen Standardwert.

Jede Hilfe bei diesem würde sehr geschätzt werden.

EDIT:

Also, Erstens, ich nicht wollen, dass die Status-Spalte in der Datenbank. Ich kann wenn ich will, aber es nicht das, was ich will, zu bestehen.

Dies ist wahrscheinlich das beste Beispiel der vollständige code, den ich geben kann.

List<Parent> parents = myDB.Parents.ToList();

foreach(Parent parent in parents)
{
    foreach(Child child in parent.Child)
    {
        if (condition1)
        {
            child.Status == Statuses.Status1;
        }
        else if (condition2)
        {
            child.Status == Statuses.Status2;
        }
        else if (condition3)
        {
            child.Status == Statuses.Status3;
        }

    }
}

Console.WriteLine(Parent.Sum(p => p.Child.Where(c => c.Status == New).Count()))
InformationsquelleAutor Andrew | 2013-09-16
Schreibe einen Kommentar