【问题标题】:Entity Framework 4 website architectureEntity Framework 4 网站架构
【发布时间】:2010-04-12 15:03:56
【问题描述】:

您好,我接到了使用 Entity Framework 4 创建 N-Teir 网站的任务,并且遇到了一些砖墙,据我所知,这很有可能。

到目前为止,我的计划是拥有这些层

网站(应用层),
我称之为 Name.Framework (BLL),
名称.数据 (DAL),
Name.Entities(包含网站/bll中使用的POCO类和其他结构类,
Name.Common(实用程序类)

我尝试使用存储库类,但我很难让事情按我的想法工作。下面是一些我遇到问题的例子。

如果我想使用 .include() ,这是在我的存储库中还是业务层的职责? (而且我不知道这在 BLL 中是如何工作的)

.Order() 也有同样的问题?据我了解,这需要在存储库中,或者至少以某种方式传递到存储库中?!?

我应该使用 BLL 将上下文传递到存储库/数据层吗?目前,当我从数据层获取实体时,任何未在 repo 中引用的导航属性都会返回“对象上下文处理”,业务层是否仍应保留上下文等,以免发生这种情况?

或者总结一下这个帮助!!!

我需要在明天之前按某种顺序(哎呀!),因为项目负责人想知道我们是要继续使用实体框架还是迁移到 NHibernate,因为我们对它有更多的了解。

感谢您的任何帮助或建议 马特

【问题讨论】:

    标签: entity-framework-4 n-tier-architecture


    【解决方案1】:

    寻找类似的东西我找到了this。目前没有过多研究它,但看起来很有希望。

    【讨论】:

      【解决方案2】:

      我目前正在使用 EF4 Code-Only 开发一个网络爱好项目,其中我具有以下结构([name] 是我的项目名称):

      • [名称].Web - 一个 ASP.NET MVC 2 项目
      • [name].Web.Models - 自定义视图模型,以及来自我的实体对象的 AutoMapper 映射
      • [name].Models - 我的 POCO 类和存储库接口
      • [name].DataAccess - 一些与数据访问相关的接口,例如IUnitOfWork
      • [name].DataAccess.EF - 所有实体框架相关的类和接口

      我还有一个针对上述每个项目的测试项目,以及几个带有帮助程序和测试扩展的项目。

      值得一提的是,这个爱好项目的部分目的是让我学习如何将 EF4 与我自己选择的一些设计模式一起使用(在这个项目中与 EF 相关的是存储库模式和工作单元模式)。另一个部分目的是建立一个我可以在以后的项目中重用的代码库,这影响了我的应用程序中项目之间的划分——例如,如果我不关心重用,我可能会在一个项目而不是两个项目中拥有所有与数据访问相关的类。

      【讨论】:

        【解决方案3】:

        我已经实现了一个基本的 EF、poco、Repository、UnitOfWork 架构,主要是在这篇文章之后:

        http://devtalk.dk/CommentView,guid,b5d9cad2-e155-423b-b66f-7ec287c5cb06.aspx

        我发现它对这些努力非常有帮助。不知道它是否对您有帮助,但其他人可能对该链接感兴趣。

        【讨论】:

        • 很遗憾,您提供的链接目前已失效。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-22
        • 2011-04-30
        相关资源
        最近更新 更多