2008-10-11 84 views
5

所以我们正在建设一个构建解耦N层应用程序,实体框架和VB.NET

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

我们的目标是有从下到DAL服务层实体框架的依赖。这意味着服务层将只接受和返回POCO(普通的旧CLR对象)。

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

所以总之,页面有窗体,窗体有表单内容的代码隐藏,将它们填充到一个POCO中,并将它发送到服务层。服务层转换为EF实体,将其发送到业务逻辑层,后者对实体执行某些转换,然后与DAL交互以保持它。

是的,它有点繁琐,但我们想知道是否有更好的方法吗?

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

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

回答

2

您应该对POCO执行业务逻辑。 ORM的全部目的是它是一个实现细节。业务逻辑应该在域模型和域服务中实现 - 在业务应用程序中,“域”意味着“业务”。 DAL应该在那里采取POCO并坚持下去 - 就你而言,这意味着将其映射到并坚持EF实体。

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