问题描述
问题是这样的我使用了EntityFramework4.0来直接生成数据库操作同时我将项目进行了3层的划分分为表示层-Web业务逻辑层-BLL数据访问层-DAL模型层-Model但是有个问题,模型层是EntityFramework4.0直接生成的,也就是直接耦合在了DAL层如果Web需要访问模型层,就只有引用DAL,显然这个就不合理了但如如果将模型层从DAL层拆出来,也不妥,因为模型层是EF4直接生成的,如果拆出来,后期数据库有了变化,没法使用自动生成工具更新开始考虑使用partial类的方式,拆到Model层,但是partial类的方式是在编译的时候将多个partial类进行合并编译,而DAL层是前于Model层编译的,所以貌似也不行考虑了使用继承的方式,但是这样做,又发现BLL和Web层,耦合的是子类型,而DAL使用的父类型,感觉在设计和传递上非常别扭,底层传上来的的父类型,BLL接收子类型,又考虑可以在父类型上添加一个扩展方法,这个方法完成父类型到子类型的转换,虽然可以实现,但是觉得太奇怪了,高层代码耦合了比较小的逻辑类型,不妥这个该怎么完美的实现呢,即让Web不耦合DAL层,又可以使用自动代码更新生成工具?谢谢各位大大,指点我一下啊谢谢
解决方案
解决方案二:
该回复于2011-11-24 13:15:07被版主删除
解决方案三:
参见EF4.1,比较适合解决你的问题,允许用户使用自己定义的实体,并允许用户手动关联映射关系
解决方案四:
我尝试安装了EF4.1但是不知道怎么关联到自动生成工具上,其实我还是想让EF自动生成实体类,我只想将自动生成的这个部分实体类,拆到一个单独的项目中有简单的介绍使用吗,或者大体思路也可以,但是不要自己手动写那些映射关系和计划
时间: 2024-09-13 06:03:26