none
如何根据业务要求定义model? RRS feed

  • 问题

  • 网站后台要添加一个功能:

    搜索用户

    条件:账号 昵称 真实姓名 手机号

    结果:账号 邀请账号 电话 昵称 真实姓名 已经邀请好友 M币使用记录 积分使用记录

    项目用三层的,Model层的里面的实体是对应数据库中的表的!

    账号 邀请账号 电话 昵称 真实姓名 这些属性都属于Model(UserInfo)的属性,

    已经邀请好友个数 M币使用记录条数 积分使用记录条数 这些都不属于UserInfo的属性!

    如果使用dataSet的话,则没有任何问题!

    但我不想用DataSet,要用泛型!
    就是返回SqlDataReader,然后转换成List<T> 的形式!
    却又找不到对应的T。
    请问:
    是不是添加一个UserRecored
    class UserRecored
    {
      public int UserID{get;set;}
      public int XRecored{get;set;}
    }
    然后 :
    class user
    {
       
      public class _userInfo;
      public class _userRecored;
      class user()
      {
      _userInfo=new class Userinfo; 
      _userRecored=new class UserRecored
      }
      public UserInfo UserInfo{get{...}set{...}}
      public class UserRecored{get{...}set{...}};

    }

    最后: 账号 邀请账号 电话 昵称 真实姓名 已经邀请好友 M币使用记录 积分使用记录=>List<user>

    这样做行不?

    貌似这样不怎么好吧!

    2010年11月18日 8:05

答案

  • Model跟数据库表的映射是可以的,比如说linq to sql 就是这样做的,Model就是数据的载体,在Java中这就是贫血设计模式。用list<T>当然很好,但是我不明白你的问题在哪里,如果要去拼凑一个不存在的类型的时候用匿名类型就行了。如果你对匿名类型不懂,你可以google下,有很多教材和blogs。
    I am fish.
    2010年11月19日 6:07

全部回复

  • 项目本来全是用dataSet的,业务简单的时间没问题,很快,可是要在绑定之前要做很多判断的话,用DataSet就很麻烦了

    所以不得不用List<T>、要学会以用List<T>

    项目中原来全是与数据库中的表对应的Model的,但是这样不能满足所有业务的处理,难不成每一个业务写一个model?肯定不是这样的,请高手指点一二!

    2010年11月18日 8:09
  • Model跟数据库表的映射是可以的,比如说linq to sql 就是这样做的,Model就是数据的载体,在Java中这就是贫血设计模式。用list<T>当然很好,但是我不明白你的问题在哪里,如果要去拼凑一个不存在的类型的时候用匿名类型就行了。如果你对匿名类型不懂,你可以google下,有很多教材和blogs。
    I am fish.
    2010年11月19日 6:07