当前位置:编程学习 > C#/ASP.NET >>

如何将Entity Framework 4.0(EF4)中的实体层剥离出来?运用于多层结构

问题是这样的

我使用了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层,又可以使用自动代码更新生成工具?

谢谢各位大大,指点我一下啊
谢谢

--------------------编程问答-------------------- --------------------编程问答-------------------- 参见EF4.1,比较适合解决你的问题,允许用户使用自己定义的实体,并允许用户手动关联映射关系 --------------------编程问答-------------------- 我尝试安装了EF4.1但是不知道怎么关联到自动生成工具上,

其实我还是想让EF自动生成实体类,我只想将自动生成的这个部分实体类,拆到一个单独的项目中

有简单的介绍使用吗,或者大体思路也可以,但是不要自己手动写那些映射关系和计划
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,