我有一个解决方案,我需要 MAP 我的对象从模型(MVVM)到实体(EF),反之亦然。
现在,我正在View Model中进行MAPPING:
Sistema.DataEntities.Models.Cliente clifinal = new Sistema.DataEntities.Models.Cliente();//EF Entities Model
clifinal.InjectFrom<UnflatLoopValueInjection>(ObCliente);//convert View Model to EF
_clienteService.ClienteService_Update(clifinal);//update on BLL(Service Layer)
正确的是在业务逻辑层上做到了吗?
如果我在BLL上这样做,这个层需要知道模型(MVVM),这对于体系结构来说不是一件好事,因为我正在使用PRISM 5和模块。
在此之后我创造了这个只是为了展示我眼中的正确建筑。
我认为这是好方法......但是我非常依赖于所创建的依赖关系以及所有模式(PRISM)......在 MAPPING 的这一点上。 我在哪里做MAP?
答案 0 :(得分:1)
由于ViewModel与业务层无关,而业务层不必了解ViewModel,因此应在模型层中(未)映射视图模型。
要从EF中删除依赖项,您必须做的是在单独的项目中定义实体。在你这样做:
这些不是异常依赖。
为了获得更好的解耦,可以制作另一组业务层实体,独立于EF POCO。在那种情况下:
这是理想的decouplign,但它并不是免费的:你需要两个映射层。所以你必须在解耦去耦成本之间取得平衡。这取决于项目规模,预期维护量等等。
你可以混合使用它们:一些POCO也可以是商业实体,而其中一些不是。