2 Stimmen

Erhalte Objekte bestimmter Typen

Ich versuche, Host-Objekte zu erhalten, die E-Objekte eines bestimmten Typs haben, wie hier:

return Session.Query().Where(x => x.E is B).ToList();

Dies scheint nicht zu funktionieren, wahrscheinlich weil E vom Typ A ist und B von A erbt. Könnte das Vererbungsproblem sein. Hier sind einige (vereinfachte) Details:

class Host
{
    public A E { get; set; }
}

class B : A
{

}

Ideen, warum das obige nicht funktioniert? Danke.

PS:

Bitte beachten Sie, dass das oben Genannte funktionieren sollte - ich habe den falschen Klassennamen verwendet!

1voto

Jan P. Punkte 3253
return Session.Query().Where(x => x.E.GetType().Equals(typeof(B))).ToList();

Dieser Code funktioniert in LinqPad:

void Main()
{
    var x = new Host { E = new B() };

    Console.Write(x.E.GetType().Equals(typeof(B)));
}

class A { }
class B : A { }
class Host { public A E { get; set; } }

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