【问题标题】:Data Access Layer and Business Logic Layer on Separate Projects in ASP.Net MVC 3 [closed]ASP.Net MVC 3 中不同项目上的数据访问层和业务逻辑层 [关闭]
【发布时间】:2013-03-23 11:11:38
【问题描述】:

我目前正在使用 ASP.Net MVC 3 开发一个 Web 应用程序。

我的解决方案中有这个结构:

  • WebApp 项目(模型、视图、控制器)
  • 服务层(接口、业务逻辑)
  • 域项目(存储库、接口、EF)
  • EF4POCO 项目 (POCO)

只是想知道这是否正确,我的数据访问层和业务逻辑层位于不同的项目中。

【问题讨论】:

  • 肯定以前被问过。请在询问之前尝试搜索功能(在 StackOverflow 和例如 Google...)。

标签: c# asp.net asp.net-mvc-3 entity-framework repository-pattern


【解决方案1】:

只要您的应用程序层是松散耦合的(例如,通过使用接口/依赖注入/等),它们就可以在同一个项目中。

但是,是的,将它们拆分到单独的项目中是常见的做法,并且从长远来看可能更易于维护和扩展。

【讨论】:

  • 谢谢。实际上,使用这种结构,我遇到了来自 EF 的 JOIN 查询结果的问题。您对如何将 JOIN 查询结果从 Repository -> Service Layer 传递给 Controller 有任何想法吗? '因为我通常做的是使用 POCO 类将查询结果传递给 Controller,这通常来自单个表。
  • 添加新的 POCO 来保存连接结果。这些 POCO 不由 DbContext 管理,仅用于包含和传输数据。
  • EF4POCO项目下可以手动添加新的POCO类吗?这些类是使用 POCO 实体生成器创建的。
  • 那么,POCO 也将用作 ViewModel,对吧?
  • 也许将 EF4POCO 项目重命名为“实体”或“模型”(或其他),并且在该项目中为 EF 生成的 POCO 和 DTO 提供单独的命名空间?然后,您可以将所有与模型相关的东西保存在 1 个项目中。是的,这些 DTO 也可以用作视图模型。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-02
  • 2013-05-24
  • 2013-03-25
  • 2012-08-30
  • 2012-07-06
  • 2011-12-03
  • 2017-01-10
相关资源
最近更新 更多