Ich habe über das ganze Netz geschaut und finde keine vernünftige Lösung. Ich bin ein Anfänger bezüglich Entity Framework. Mit was ich arbeiten konnte, mag ich sehr. In früheren Projekten, habe ich ein Wörterbuch von Objekten ziehen konnte, dass ich später wie folgt verwenden können:Wie reflektiere ich eine Liste von EntityObjects?
Dictionary<string, MyBaseType> myTypes = new Dictionary<string, MyBaseType>();
var types = Assembly.GetExecutingAssembly().GetTypes()
.Where(t => t.BaseType != null && t.BaseType.Name.Equals("MyBaseType")).ToArray();
object ct;
foreach (Type c in types)
{
ct = Activator.CreateInstance(c);
myTypes.Add(ct.GetType().Name, ct as MyBaseType);
}
var myob = myTypes["SomeName"];
myob.DoFoo(); // this is a method of my basetype class or my interface
Ich brauche etwas ähnliches für eine MVC w/EF4 Projekt zu tun. Ich habe versucht, EntityObject als Basistyp zu verwenden, aber aus irgendeinem Grund wird die ausführende Assembly sie nicht widerspiegeln.
Irgendwelche Ideen?
Ich benutze nichts besonderes. Nur ein EDMX in meinem Hauptprojekt. Ich kann sehen, dass jede Entität der Basistyp von EntityObject ist. Ich dachte, ich könnte einfach von dort nachdenken und weitermachen, aber wie gesagt, die ExecutingAssembly erkennt diese Typen nicht. Wenn die in einem EDMX-Hauptprojekt generierten Typen nicht in der ausführenden Assembly enthalten sind, wo sind sie? – HapiDjus
Die Frage ist "Was ist Ihre ausführende Assembly"? Sehen Sie sich 2 an. Wo wird der Beispielcode angegeben? Ist es in der gleichen Baugruppe wie Ihr EDMX? Welche Sichtbarkeit haben Ihre EF-Objekte? Sind sie öffentlich? –