使用实体框架和VB.NET构建解耦的N层应用程序

Dav*_*ave 5 vb.net asp.net entity-framework

所以我们正在构建一个带有的应用程序

  • UI层(Web,移动,Ajax客户端等)
  • 服务/ API层
  • 业务逻辑层
  • 数据访问层

我们的目标是从服务层到DAL具有实体框架依赖关系.这意味着Sevice层只接受并返回POCO(普通的旧CLR对象).

我们目前正在做的是手动编码服务层和业务逻辑层之间的映射层,将POCO转换为EF实体,反之亦然.

所以简而言之,页面有表格,表格有代码隐藏,表格内容,填入POCO,发送到服务层.服务层转换为EF实体,将其发送到业务逻辑层,业务逻辑层对实体执行某些转换,然后与DAL交互以使其持久化.

是的,它有点乏味,但我们想知道是否有更好的方法?

是的,我知道有人发布了EF Poco适配器,但它全部都在C#中,我们更喜欢VB.NET解决方案.

是的,切换到NHibernate是最后的选择,因为我们已经深入到我们的开发周期.

yfe*_*lum 2

您应该在 POCO 上执行业务逻辑。ORM 的全部目的在于它是一个实现细节。业务逻辑应该在域模型和域服务中实现——在业务应用程序中,“域”意味着“业务”。DAL 应该在那里获取 POCO 并将其持久化 - 在您的情况下,这意味着将其映射到并持久化 EF 实体。

无论如何,这就是理论/NHibernate 模型。