2

如果我有一个包含多个表的数据库,但每次我需要在我的网站中使用一个表时,我只需将它添加到一个模型中。按功能分解 edmx 文件更好吗?

4

2 回答 2

2

这实际上取决于您的应用程序结构,如果您的所有实体都是相关的,那么您应该将它们保存在一个 EDMX 文件中。

您必须将 EDMX 视为一个类。因此,如果您觉得它们在单独的文件中组织得更好,那么请继续创建尽可能多的文件以使其保持井井有条/

我已经在我想分离关注点的一些应用程序中做到了这一点。

混合数据访问层对我来说似乎不合适。

对于管理员来说是这样的:

private void SomeAdminFunction()
{
    using (var db = new AdminEntities())
    {
      //Access all Admin entities
    }
}

对于用户:

private void SomeUserFunction()
{
    using (var db = new UserEntities())
    {
       //Access all User entities
    }
}
于 2013-11-03T17:05:09.073 回答
2

有一种观点认为,通过将 EDMX 拆分为域驱动的实体来拆分您的站点是一个好主意。这使您能够设置上下文,查看特定于它将执行的作业的数据,并隔离关注点。Julie Lerman 在她的 Pluralsight 课程中详细介绍了一些细节。实体框架 1 大型 edmx 或多个域驱动模型?'>我还看到了这里描述的这种技术的问题

总的来说,这是否是一个好主意的答案可能取决于数据库和 Web 应用程序的性质。如果数据库包含不应该暴露给网络的数据,那么这种分离是必不可少的。另一方面,如果它只是少数几个表而没有真正的问题来公开它们,那么它可能是不需要的额外复杂性。

于 2013-11-03T17:05:17.817 回答