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

时间:2013-10-24 15:26:34

标签: c# entity-framework edmx

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

2 个答案:

答案 0 :(得分: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
    }
}

答案 1 :(得分:1)

以下原因不考虑将EMD分开想到

  1. 如果您的程序映射到您将要写回数据库的实体,那么您将为自己创建更多工作。
  2. 拥有2 EDM s意味着对于可能没有逻辑分离的Context有2个选项。
  3. 拥有2 EDM s似乎没有任何我能想到的清洁。