私はEF4が新しく、私はDbContextクラスを作成する最良の方法を見つけようとしています。EFのDbContextにはすべてのテーブルが含まれていますか?
以下のコードのように、すべてのテーブル/エンティティを1つのDbContextクラスに入れても問題はありませんか?
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...
}
また、機能のサブセットに基づいてクラスをモデル化する必要がありますか?
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!
}
おかげ
境界のあるコンテキストは、間違いなく良い考えです。パフォーマンスの低下は無視できます...モデルの作成には時間がかかりますが、起動時にのみ発生します。できるだけ早くそれを保つために多くのトリックがあります。いくつかのビデオの詳細:http://pluralsight.com/training/Courses/TableOfContents/efarchitecture – Jowen