gpt4 book ai didi

architecture - 使用 Entity Framework 4 和存储库模式的多层架构

转载 作者:行者123 更新时间:2023-12-04 04:36:10 25 4
gpt4 key购买 nike

我必须使用 Entity Framework 4.1 和 ASP.NET 构建 Web 应用程序的体系结构。我已经有了数据库结构,所以我必须使用database-fist。我在这里阅读了很多文章和主题,但似乎我错过了一些东西。我决定按以下方式组织项目:

我已经用 Linq2Sql 构建了一个 Web 应用程序。我用了this project .它提供了一个 T4 模板,为每个实体生成一个特定的静态存储库类。我喜欢这种方法,因为它很容易向任何存储库添加额外的逻辑,例如 GetUserByName() .我喜欢这种方法,但到目前为止我找不到 EF4 的类似方法。我只找到了通用存储库,然后我必须手动创建具体的存储库。在这种情况下,我不喜欢首先我正在处理的应用程序有一些复杂的业务逻辑,所以我必须为几乎每个实体手动创建具体的存储库。其次,如果一开始我使用通用存储库获取所有实体,后来我需要使用,例如GetUserByName() ,那么代码中就会出现不一致。我希望所有数据检索都以相同的方式完成。

我要么在架构结构中遗漏了一些东西。

  • Generic:Generic Repository 如果有必要分开
  • DAL:带有上下文类和存储库的 EDMX(实体模型)文件
  • BLL:系统的业务逻辑

    -- 实体

    - 服务

    -- 等等
  • UI:ASP.NET 页面

  • 问题:
  • 逻辑分离是否正确?
  • 我应该使用特定的存储库吗?
  • 对于最好的项目组织和易用性,您会推荐哪种存储库模式实现?
  • 使用静态存储库更好吗?

  • 谢谢

    最佳答案

    不要使用静态类作为存储库。对于正确的面向对象设计来说,这很糟糕而且很遥远。它还完全阻止了控制反转和依赖注入(inject)的任何可能性。

    如果要使用存储库模式,则必须使用特定的存储库。通用存储库只是 EF 相关类的包装器(其中 ObjectSet/DbSet 已经是 EF 相关的存储库)。您还应该在聚合根之上而不是在每个实体之上构建您的存储库。

    关于architecture - 使用 Entity Framework 4 和存储库模式的多层架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7745338/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com