问题是这样的我使用了Entity Framework 4.0来直接生成数据库操作同时我将项目进行了3层的划分
分为
表示层-Web
业务逻辑层-BLL
数据访问层-DAL
模型层-Model但是有个问题,模型层是Entity Framework 4.0直接生成的,也就是直接耦合在了DAL层
如果Web需要访问模型层,就只有引用DAL,显然这个就不合理了但如如果将模型层从DAL层拆出来,也不妥,因为模型层是EF4直接生成的,如果拆出来,后期数据库有了变化,没法使用自动生成工具更新开始考虑使用partial类的方式,拆到Model层,但是partial类的方式是在编译的时候将多个partial类进行合并编译,而DAL层是前于Model层编译的,所以貌似也不行考虑了使用继承的方式,但是这样做,又发现BLL和Web层,耦合的是子类型,而DAL使用的父类型,感觉在设计和传递上非常别扭,底层传上来的的父类型,BLL接收子类型,又考虑可以在父类型上添加一个扩展方法,这个方法完成父类型到子类型的转换,虽然可以实现,但是觉得太奇怪了,高层代码耦合了比较小的逻辑类型,不妥这个该怎么完美的实现呢,即让Web不耦合DAL层,又可以使用自动代码更新生成工具?谢谢各位大大,指点我一下啊
谢谢