首页 新闻 会员 周边

orm 疑惑

0
悬赏园豆:20 [已关闭问题]

这个困惑存在好长时间了,就我现在知道的orm方面的框架有linqtosql nhibernate ado.netEF。

还是那个model的问题,主要以前用的是三层结构,有一个单独的model项目,现在如果要用linq to sql 和Ado.net EF自动把model生成好了而且这个模型数据访问等方法都有了,这样UI层如果想用model,也得引用dal的项目,感觉比较混乱,但看过网上的一个例子,还真是这么做的,这个例子中ado.netEF生成的modle,用来在服务层之间传输.

刚才看了nhibernate的简介,好像他可以生成自己的model,可以实现分层。

 

我的疑问主要是该不该在model里他加上数据访问的方法。难道orm要和三层冲突吗?

Jerry Qian的主页 Jerry Qian | 初学一级 | 园豆:19
提问于:2009-11-20 09:58
< >
分享
其他回答(1)
0

框架没有正确错误之分,只有是否合适之分。有人使用贫血模型(只有属性,没有方法),CRUD操作在单独的数据访问类中实现,有人使用充血模型,将CRUD放在模型内部,孰优孰劣?这是没法下定论的。我们能讨论的只能是,根据当前系统规模、业务需求等条件来判断那种设计方案更合适,而已。

如果是初学者,我建议使用贫血模型,将Model层与DAL层分离开,Model作为实体模型和数据传输对象,可以为各个层所引用。

等熟悉了各种架构,再学习如何设计复杂的领域模型。

麒麟.NET | 园豆:3614 (老鸟四级) | 2009-11-20 12:31
我經過後來查資料也是這麼認為的.看來功力有待提高.呵呵.
支持(0) 反对(0) Jerry Qian | 园豆:19 (初学一级) | 2009-11-23 09:22
0

Linq的这种作法个人感觉与Mvc并不冲突,如果楼主感觉不方便,可以单独再封装一层VO以实现值对象的传递,也是很容易实现的。

netlibertine | 园豆:230 (菜鸟二级) | 2009-11-20 16:32
oxite就是這麼做得.
支持(0) 反对(0) Jerry Qian | 园豆:19 (初学一级) | 2009-11-23 09:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册