小弟初学三层+工厂模式,发现用起来有许多地方不是很明白.请高手接单
1.这个模式下面,数据库的视图如何使用.因为视图没有专门的model对象.难道 要为视图建立对象吗.还是不提倡用视图.
2.一些页面的gridview显示的内容,可能只要一个表的几个字段,不需要全部.如果用dal去查询,返回的model对象的话.是否数据量就太多了.也浪费了.要如何处理.
3.更新数据的问题,比如我只要更新一条数据的一个字段.有没有简便的方法.难道一定要getModel以后,更改一下再update进去呢.因为事实上,更新一条数据的一个字段.我只要知道数据id,和字段的值就好了.
希望高手指点以上三个问题.
1.这个模式下面,数据库的视图如何使用.因为视图没有专门的model对象.难道 要为视图建立对象吗.还是不提倡用视图.
2.一些页面的gridview显示的内容,可能只要一个表的几个字段,不需要全部.如果用dal去查询,返回的model对象的话.是否数据量就太多了.也浪费了.要如何处理.
3.更新数据的问题,比如我只要更新一条数据的一个字段.有没有简便的方法.难道一定要getModel以后,更改一下再update进去呢.因为事实上,更新一条数据的一个字段.我只要知道数据id,和字段的值就好了.
希望高手指点以上三个问题.
当然,你可以用你的方法,三层不是规矩,是解决问题的方法,看情况而变。
使用LINQ更新,它就非得要你传递一个对象
这个是必然滴,实际上下面我要说的可能就是sp1234大大比较反感的,模型对象分类DO,DTO一类的东西,实际上我也是一个比较关注抽象的人,也觉着的确没啥必要太过区分这些东西,只是实际应用中viewmodel,dto这类东西到却是是真实存在的正好昨天在博客园看了一篇博文
《谈谈对于企业级系统架构的理解 》
http://www.cnblogs.com/liping13599168/archive/2011/05/11/2043127.html虽然也是老生常谈的东西,但是博主本身为你展现了一个渐进的过程。一个从抽象到具象的渐进演变过程
只是我们态度是不要刻意去最求那个最终结果,那个结果是根据条件渐进演变滴,没有那个渐进的过程,你想一步就过去话,正好又是另外一个幽默“步子太大了,容易扯着蛋”
你说麻烦?楼上有人说,用3.5的LINQ,你可以试试。那都是用控件直接拖动的。
而且代码就几句,类已经方法实现,微软都帮你写好了。但是问题是你看看功能实现以及问题所在吧。底层很重要,楼上说的对:“步子太大了,容易扯着蛋” up↑
2,可以仅读取Mode的部分属性,如PDF.NET数据框架的用法:User user=new User();
OQL q=OQL.From(user).Select(user.ID,userName).END;
List<User> result=EntityQuery<User>.QueryList(q);3,可以仅仅更新Mode的部分属性:User user=new User();
user.UID=3;//设置主键的值
user.Age=20;
EntityQuery<User>.Instance.Update(user.Age);//仅仅更新Age属性
推荐楼主用用我的框架
框架是来自多个项目的经验总结,并且受到了众多网友的肯定,已经有不少朋友获取了源码,官网有说明。
由于来自实际商业项目应用,可以肯定发布的版本没有Bug。
是否将视图生成实体看业务需要,不要将实体类和数据库表、视图等同,实体可以映射到一个表或者多个表,复杂的查询,视图,存储过程等,可以简单的认为,实体就是系统中要使用的数据载体,这些数据可以从数据库来,也可以从XML文件或者其它地方来,也就是,不要
DB=>Entity
而是
Entity=》DB
否则你会纠结于数据库的设计,而无法体会到OOAD的优势。