用于对存储过程进行分组的单独 EDMX

本文关键字:单独 EDMX 存储过程 用于 | 更新日期: 2023-09-27 18:36:49

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

用于对存储过程进行分组的单独 EDMX

我想到了以下不分离EMD的原因

  1. 如果过程映射到要写回数据库的实体,则会为自己创建更多工作。
  2. 拥有 2 EDM s 意味着有 2 个Context选择,以选择可能没有逻辑分离的内容。
  3. 拥有 2 EDM s 似乎并没有以我能想到的任何方式看起来更干净。

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

虽然在某些情况下@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
    }
}