2

我有一个复杂的数据库,想知道为存储过程创建一个单独的 edmx 是否是一个好方法?我的想法是根据使用数据库的应用程序拥有多个 edmx 文件。这样,每个应用程序将只能访问它需要的存储过程。

4

2 回答 2

1

EMD想到以下不分开 s 的原因

  1. 如果您的过程映射到您将写回数据库的实体,您将为自己创建更多工作。
  2. 拥有 2 EDMs 意味着有 2 种选择Context可能没有逻辑分离。
  3. 以我能想到的任何方式,拥有 2 EDMs 似乎并不干净。
于 2013-10-24T15:40:11.717 回答
1

我不明白为什么这会是个问题。

虽然@Khan 在某些情况下可能是正确的,但我相信如果您的项目足够大,那么您可以将它们分开,如果它有助于您保持井井有条。

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

我的解决方案有一个管理项目和一个用户项目,我添加了第三个作为包含两个 EDMX 的 DLL。然后我在两个项目中添加了对同一个 dll 的引用。

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

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

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

对于用户:

private void SomeUserFunction()
{
    using (var db = new UserEntities())
    {
          //Access all User Stored Procedures
    }
}
于 2013-10-24T15:33:55.043 回答