在使用EF4代码时,有没有人建议使用大型数据库模型?实体集被添加到数据库上下文中,但如果我有100个表,我需要创建100个DbSet,每个表1个:
public class Customers : DbContext
{
public DbSet<Customer> Customers {get; set;}
public DbSet<Employees> Employees {get; set;}
public DbSet<...
...
...
95 more
}
对于大型数据库模型,最好根据域名将DbSets拆分为多个类吗?
答案 0 :(得分:2)
是的,您必须为每个表创建POCO类和DbSet。这就是Code的意思。如果您不喜欢它,您可以使用标准EDMX并让EF为您生成实体和映射。
将模型拆分为多个上下文可能是个好主意,但这取决于您的域模型和解决方案的其他特征。请注意,延迟加载和复杂查询等许多功能仅适用于附加到同一上下文的实体。只有在上下文中映射的entites才能在那里使用。
对于这样一个大解决方案,您可以检查有关聚合根和存储库的域驱动设计理论。它可以为您提供有关拆分解决方案的一些想法。