Mein EntityFramework Kontext ‚System.Data.Entity.DbSet‘ eingeben:Konnte nicht das Objekt von Typ ‚System.Data.Entity.DbSet`1 [Modelname]‘
public class MyContext : DbContext
{
public DbSet<Company> Companies { get; set; }
public DbSet<Contact> Contacts { get; set; }
public DbSet<Event> Events { get; set; }
}
Meine Methode Objekte hinzufügen :
public void AddObject(DbContext context, Type t, object object_to_add)
{
PropertyInfo context_property =
context.GetType().GetProperties()
.Where(p => typeof(IEnumerable).IsAssignableFrom(p.PropertyType)
&& p.PropertyType.GenericTypeArguments.Any()
&& p.PropertyType.GenericTypeArguments.First() == t)
.Single();
DbSet db_set = (DbSet)context_property.GetMethod.Invoke(context, null);
db_set.Add(object_to_add);
}
aber der Code stürzt ab, wenn ich versuche, eine DbSet<>
zu DbSet
,
ich bin mit Reflexion zu werfen, weil ich DTO Objekte erhalten, die ich zu einem vorhandenen Modell abzubilden (über reflectio n als auch), ich möchte nicht ein Add-Methode für jedes neue Modell kodieren (ich habe wie 40 und die Liste wächst exponentiell)
Blockquote
eine Lösung?
Ist Ihr Kontext und dieser Code in der gleichen Assembly? –