三层架构初学,请问个有关问题

三层架构初学,请教个问题
我的类表 id,name,parent_id,sort,english_name
通过bll层调用dal层的getClass方法
select * from classtable得到他们的数据封装到Model的Class类里边

如果我只想得到id,name的值如果直接调用这个方法是不是会浪费性能
是不是要从新写一个方法,直接select id,name但是这样的话怎么封装到model里呢

------解决方案--------------------
model应该有什么类型,是看表现层跟业务逻辑层协商(设计)结果,不是看数据库表。

那种根据几个数据库表就搞几个model的,实在是本末倒置。
------解决方案--------------------
返回一个实体完全可以啊
------解决方案--------------------
可以自己设计一个实体嘛
------解决方案--------------------
引用:
model应该有什么类型,是看表现层跟业务逻辑层协商(设计)结果,不是看数据库表。

那种根据几个数据库表就搞几个model的,实在是本末倒置。

   +1
------解决方案--------------------
你要连那个性能都在乎 那干脆别用MODEL了,层之间用字符创通信好了....甚至层都不用分了
------解决方案--------------------
  没必要的,返回一个实体字段和多个字段是体现不出来的,如果一个表字段上百个,那就要考虑了……
------解决方案--------------------
引用:
我的类表 id,name,parent_id,sort,english_name
通过bll层调用dal层的getClass方法
select * from classtable得到他们的数据封装到Model的Class类里边

如果我只想得到id,name的值如果直接调用这个方法是不是会浪费性能
是不是要从新写一个方法,直接select id,name但是这样的话怎么封装到model里呢


说点实际的吧, 你的Model层还是不要变, 要不搞死你。

在DAL层加多一个方法, 只返回部分字段, 然后这部分有数据的字段赋给Model层的id,name两个属性就好。

------解决方案--------------------
引用:
我的类表 id,name,parent_id,sort,english_name
通过bll层调用dal层的getClass方法
select * from classtable得到他们的数据封装到Model的Class类里边

如果我只想得到id,name的值如果直接调用这个方法是不是会浪费性能
是不是要从新写一个方法,直接select id,name但是这样的话怎么封装到model里呢


如果调用 id,name的情况不是很多的话,可以直接获取select * ...
如果会频繁调用的话,建议另外写一个方法。model里只给id和name赋值就可以了

------解决方案--------------------
引用:
Quote: 引用:

model应该有什么类型,是看表现层跟业务逻辑层协商(设计)结果,不是看数据库表。

那种根据几个数据库表就搞几个model的,实在是本末倒置。

很多三层架构的介绍都是 model层直接就是数据库里的字段相对应


代码生成器生成的类是和数据库里的表对应的,不过 你可以在DAL自定义model啊  想要什么样的 都可以的
------解决方案--------------------
引用:
Quote: 引用:

我的类表 id,name,parent_id,sort,english_name
通过bll层调用dal层的getClass方法
select * from classtable得到他们的数据封装到Model的Class类里边

如果我只想得到id,name的值如果直接调用这个方法是不是会浪费性能
是不是要从新写一个方法,直接select id,name但是这样的话怎么封装到model里呢


如果调用 id,name的情况不是很多的话,可以直接获取select * ...
如果会频繁调用的话,建议另外写一个方法。model里只给id和name赋值就可以了


+1

几个字段的浪费~ 真的不算什么~

我们使用了C# 而不使用0和1 本身就已经很浪费了~三层架构初学,请问个有关问题

淘宝说 淘宝的用户那么多 所以能节约一个byte 那么也是节约好多的~

但等到你淘宝的级别的时候再说~

现在就牺牲点性能来换开发速度吧~ 难道你真的想用1和0来编程~
------解决方案--------------------
你们这些货都没给初学者一个答案。
------解决方案--------------------
一个方法就好了,你要什么字段,传参数过去拿什么字段。
如:select * from test
    select a,b,c from test
改:
     select 变量 from test
model还是保留吧  一个集合也可以用泛型
------解决方案--------------------
可以自定义一个model类,比如说如果你硬是只要id,name..
你就定义这两个成一个类就行了...
再说了,一般实体与数据库中差不多都是对应的,便于你想要得到数据中的字段。..
这算不上是浪费..

------解决方案--------------------
在Model里面的你说的那个类表写构造函数:
public 类表名(){}
public 类表名(int id,string name){
   this.Id=id;
   this.Name=name;
}

这样在select id,name 表名

------解决方案--------------------
引用:
在Model里面的你说的那个类表写构造函数:
public 类表名(){}
public 类表名(int id,string name){
   this.Id=id;
   this.Name=name;
}

这样在select id,name 表名

执行SQL语句得到id和name直接实例化那个类
Iop i = new Iop(id,name);
这样得到的它的对象i就是了
------解决方案--------------------
应该这样来做一件事情:
1. 评价你这个做法有没有意义?如果字段本身不多,而且并不是那种非常需要效率、并发性很高的情况下,并不需要如此认真地节省。就像你下班回家,是带银行卡回家还是放办公室算了,在绝大多数的情况下,带上并没有多大影响的。

2. 如果一定要做。 select id, name from table ; 再将 id ==> obj.Id , name ==> obj.Name 就可以了, 也是件很简单的事。 

楼主结贴吧, 不要浪费大家看贴的时间了。