我应该在课堂库中或直接在应用程序中包括实体框架吗?



您以前可能遇到过这种类型的问题,但就我而言,情况有些不同,我找不到可行的答案。(可能已经存在,但是我找不到)。

我正在研究一个业务应用程序,该应用程序将整个功能分为多个类库。我正在使用实体框架,我不确定哪个是合适的地方?就我而言,我已经有这些库:

  • project.library.core
  • project.library.models(包含实体数据模型和实体)。
  • project.library.auth(包含与身份验证相关的和用户管理类)。
  • 和经常使用实体和DB上下文的类似类别。

为了使这项工作,我可以分别在每个库中安装实体框架。最终它们将包括在许多ASP.NET MVC Web应用程序中。我已经将实体框架直接安装到Web应用程序中,但是此应用程序将来将拥有移动应用程序以及可能的Windows Store应用程序。在这种情况下,我可以简单地设置ASP.NET Web API并使用现有类库来生成所需的数据。这是让我从直接将实体框架合并到Web应用程序中的唯一因素。

那么您对此有何看法?单独将实体框架包含在每个库中(需要正常运行),或者简单地包含在Web应用程序中,然后遵循Web API的相同方法?

谢谢。

您只需要将"安装" EntityFramework进入一个地方: Project.Library.models 。假设标准代码优先对象是您的DTO,只要用数据访问层包装上下文对象,您就不会在其他任何地方进行直接参考。

添加对该组件的参考将导致您的应用,网站等都包含必要的DLL。请注意,如果您使用entityFrameWork.sqlServer,则不会检测到瞬态依赖性,因此您需要。做类似:

的事情
class Include
{
    private Include() { }
    private SqlProviderServices IncludeSql;
}

模型项目中的某个地方,以便dll也被复制。

最新更新