因此我们正在使用
构建应用程序我们的目标是从服务层到DAL具有实体框架依赖关系。这意味着Sevice层只接受并返回POCO(普通的旧CLR对象)。
我们目前正在做的是手动编码服务层和业务逻辑层之间的映射层,将POCO转换为EF实体,反之亦然。
简而言之,页面有表格,表格有代码隐藏,表格内容,填入POCO,发送到服务层。服务层转换为EF实体,将其发送到业务逻辑层,业务逻辑层对实体执行某些转换,然后与DAL交互以使其保持持久。
是的,它有点乏味,但我们想知道是否有更好的方法?
是,我知道有人发布了EF Poco适配器,但它全部都在C#中,我们更喜欢VB.NET解决方案。
是,切换到NHibernate是最后的选择,因为我们已经深入到开发周期。
答案 0 :(得分:2)
您应该在POCO上执行业务逻辑。 ORM的全部目的是它是一个实现细节。业务逻辑应该在域模型和域服务中实现 - 在业务应用程序中,“域”意味着“业务”。 DAL应该在那里采取POCO并坚持下去 - 在您的情况下,这意味着将其映射到并保持EF实体。
无论如何,这是理论/ NHibernate模型。
答案 1 :(得分:1)
您是否可以在EF 接口上的服务层中拥有依赖关系?您可以implement IPOCO。