none
asp.net 三层结构开发项目时!你们每个层的写法和风格! 欢迎大家讨论!互相学习! RRS feed

  • 常规讨论

    1. 实体层:我的一般都是和数据库表对应写实体!有时侯也有业务实体! 当实体一个字段为另一个表的外键的时候怎么处理好呢?! 看到微软Duwamish 写的实体类是继承了datatable的!有些实体用了 特性 标记!
      public class TblName{
            public  string FieldName{get;set;}
            public  UserInfo user{get;set;} //数据库为Id,作为一个外键
      }

      

     2. 数据访问:
          个人认为这里的数据处理层直接关乎项目的效率,包括sql写的好坏!等等一切逻辑判断!想想我以前我把 执行数据库 的代码写循环里面!本来可以一条sql搞到的!(现在想想真的傻到了极点:)), 还有这里是直接写sql语句好还是 在sqlserver写好存储过程直接调用! 我认为复杂的有逻辑判断的还是用存储过程!现在关键就是从取数据了!
          

    using (idr = DBHelper.ExecuteReader(CommandType.Text, sql, null))
                    {
                        while (idr.Read())
                        {
                            urm = new Messages();
                            urm.Id = idr.GetInt32(0);
                            urm.FromUserInfo = UserInfoService.GetUserInfoById(idr.GetInt32(1));
                            urm.ToUserInfo = UserInfoService.GetUserInfoById(idr.GetInt32(2));
    
    urm.Title = idr.GetString(3); urm.Content = idr.GetString(4); urm.Time = idr.GetDateTime(5).ToString(); urms.Add(urm);
    }


    }













       现在我就是这样写的! 但是urm数据库里面有100个字段呢?这样写又耗体力又容易出错! urm.FromUserInfo = UserInfoService.GetUserInfoById(idr.GetInt32(1));
     这样处理外键关系感觉也不好!    网上看到过别人这里用了反射机制!就无所谓字段多少了! 但是那个东西感觉又有点复杂! 而且我用了那个东西! 外键关系又不好处理! 哎!
    [你们有好的方法要告诉我哦 !]
         


    Anything Is Possible !
    2010年2月5日 19:54

全部回复

  • 你好!

    建议使用强类型数据集的方式,这样大部分代码会为你自动生成。你也不需要去关心表有多少个字段与外键关系。

    如果你想保持原样,建议使用建模工具或你自己写个工具生成实体类,基本数据操作使用反射。这样就不必关心字段多少,但外键你可能需要自己处理。

    知识改变命运,奋斗成就人生!
    2010年2月6日 2:07
    版主
  • 我之前用的就是 "动软代码代码生成工具"! 反射机制的效率怎么样!
    Anything Is Possible !
    2010年2月6日 3:37
  • 使用反射理论上效率要比硬编码差,但在这个应用中,这样差异你是感觉不到的。
    知识改变命运,奋斗成就人生!
    2010年2月6日 3:53
    版主
  • 用 Nhibernate 怎么样啊 !
    Anything Is Possible !
    2010年2月6日 4:13