Qui è definita la classe Classe che raggruppa le entità:
Codice: Seleziona tutto
public partial class Classe : DbContext
{
public Classe()
: base("name=Classe")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public DbSet<Articoli> Articoli { get; set; }
}
Codice: Seleziona tutto
Quello che vien fatto qui di seguito(Reperire gli articoli dalla classe Classe/DbContext)
Classe nc = new Classe();
foreach(Articoli a in nc.Articoli.ToList())
{
Console.WriteLine(a.CodiceArticolo);
}
Codice: Seleziona tutto
//Deve essere possibile realizzarlo per qualsiasi entità(Articolo, Cliente, Ordine...),
//Pensavo di usare la Reflection, così:
Type typeClassContext = classe.GetType();
PropertyInfo articoli = typeClassContext.GetProperty("Articoli");
Type typeArticoli = articoli.PropertyType;
object x = typeArticoli.InvokeMember("ToString",
BindingFlags.Public | BindingFlags.NonPublic |
BindingFlags.Instance | BindingFlags.InvokeMethod, null, classe.Articoli, null);
//Notare che dovrei sostituire "classe.Articoli" con un un oggetto Type ottenuto tramite il nome: "Articoli"
MessageBox.Show(x.ToString());
//Qui accedo alla query(con il metodo "ToString"), ma se invece di "ToString" mettessi "ToList" purtroppo non riesco ad ottenere la lista...