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

时间:2008-10-11 00:03:18

标签: asp.net vb.net entity-framework

因此我们正在使用

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

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

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

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

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

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

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

您是否可以在EF 接口上的服务层中拥有依赖关系?您可以implement IPOCO

甚至有a way to do it automatically