Ich bin neu in EF4, und ich versuche herauszufinden, die beste Möglichkeit, um meine DbContext-Klasse (n) zu erstellen.Sollte EF DbContext alle Tabellen enthalten?
Gibt es irgendein Problem (besonders Leistung), wenn ich alle meine Tabellen/Entitäten in eine und nur eine DbContext-Klasse setze, wie der Code unten?
public class AllInOneDb : DbContext
{
public DbSet<Customer> Customers{ get; set; }
public DbSet<Address> Addresses{ get; set; }
public DbSet<Order> Order{ get; set; }
public DbSet<Product> Products{ get; set; }
public DbSet<Category> Categories{ get; set; }
// and more and more entities...
}
Oder sollte ich meine Klassen basierend auf den Teilmengen von Funktionalitäten modellieren?
public class CustomerDb : DbContext
{
public DbSet<Customer> Customers{ get; set; }
public DbSet<Address> Addresses{ get; set; }
public DbSet<Order> Order{ get; set; }
}
public class ProductDb : DbContext
{
public DbSet<Product> Products{ get; set; }
public DbSet<Category> Categories{ get; set; }
public DbSet<Order> Order{ get; set; } // look Order entity again!
}
Dank
Bounded Contexts kann definitiv eine gute Idee sein! Der Performance-Hit kann jedoch ignoriert werden ... Die Erstellung des Modells dauert länger, aber das geschieht nur beim Start. Es gibt viele Tricks, um es so schnell wie möglich zu halten. Weitere Informationen in einigen Videos: http://pluralalsight.com/training/Courses/TableOfContents/efarchitecture – Jowen