[100]PD进行反向工程,生成实体类的结构问题。。

楼主LanseGhost(LanseGhost)2005-12-22 18:00:38 在 .NET技术 / ASP.NET 提问

用PD进行方向工程,生成部分表,可是生成的结构好像不能理解   -_-!。。  
   
  1、表结构大概是这样的  
  a)   Admin  
  ID   int   PK  
  Name   string  
  Account   string  
   
  b)   AdminModule  
  IdtbAdmin   int FK //指向Admin   的   ID  
  IdtbModule   int   FK //指向   Module   的   ID  
  //#####   上面   2个字段组成联合主键  
  DetailPower   string  
   
  c)Module  
  ID   int   PK  
  Name   string  
  IdtbModuleCategory   int   PK   //指向ModuleCategory   的   ID  
   
  d)  
  ID   int   PK  
  Name   string  
   
  2、PD生成的  
  //账号实体类  
  public   class   Admin  
  {  
        public   long   Id;  
        public   string   Name;  
        public   string   Account;  
        public   AdminModule   AdminModule;  
  }  
  //连接账号和功能模块的实体类  
  public   class   AdminModule  
  {  
        ///   S   I   U   D分别表示Select   Insert   Update   Delete  
        public   string   DetailPower;  
        public   Module[]   FK_Admin_Module_Module;  
        public   Admin[]   FK_Admin_Module_Admin;  
  }  
  //模块实体类  
  public   class   Module  
  {  
        public   int   Id;  
        public   string   Name;  
        public   AdminModule   AdminModule;  
        public   ModuleCategory   FkModuleModuleCategory;  
  }  
  //模块类别实体类  
  public   class   ModuleCategory  
  {  
        public   long   Id;  
        public   string   Name;  
        public   Module[]   FkModuleModuleCategory;  
  }  
   
  3、我觉得应该生成的结构  
  //账号实体类  
  public   class   Admin  
  {  
        public   long   Id;  
        public   string   Name;  
        public   string   Account;  
        //#######下面修改了  
        public   AdminModule[]   AdminModule;  
  }  
  //连接账号和功能模块的实体类  
  public   class   AdminModule  
  {  
        ///   S   I   U   D分别表示Select   Insert   Update   Delete  
        public   string   DetailPower;  
        //下面添加了2个属性  
        public   int   IdtbModule;  
        public   int   IdtbAdmin;  
        //#######下面修改了  
        public   Module   FK_Admin_Module_Module;  
        //######下面修改了  
        public   Admin   FK_Admin_Module_Admin;  
  }  
  //模块实体类  
  public   class   Module  
  {  
        public   int   Id;  
        public   string   Name;  
        //######下面添加了个属性  
        public   int   IDtbModuleCategory  
        //#######下面修改了  
        public   AdminModule[]   AdminModule;  
        public   ModuleCategory   FkModuleModuleCategory;  
  }  
  //模块类别实体类  
  public   class   ModuleCategory  
  {  
        public   long   Id;  
        public   string   Name;  
        public   Module[]   FkModuleModuleCategory;  
  }  
   
  主要问题:  
  1、是连接表那一块,本来来说连接表AdminModule跟Admin应该是m:1关系阿,怎么变成了1:1了?  
  2、那些外键,比如Module类中的IdtbModuleCategory   还有AdminModule类中的IdtbAdmin和IdtbModule都直接被删除了?那写控制类的时候,比如插入一条Module数据?那必须通过访问ModuleCategory类,再获取ID之后插入?就是都要把ModuleCategory实例化?  
  3、还有就是,如果AdminModule表中的DetailPower字段去掉,那么PD在生成的OOM图中,根本就没有生成AdminModule的类?直接在Admin和Module类中体现多对多的关系。那么以后要插入AdminModule表的记录应该怎么插入呢?控制类应该怎么写?  
  4、如果AdminModule中的IdtbAdmin和IdtbModule没有被设计成联合主键,那么生成的关系图就跟我下面   自认为   的差不多,就是类里头少了外键的那些属性。  
   
  本人初学面向对象编程,看了点资料,一下问了这么多问题,希望大家不吝赐教,帮帮忙,^_^  
  问题点数:100、回复次数:6Top

1 楼LanseGhost(LanseGhost)回复于 2005-12-22 18:51:38 得分 0

自己顶~~Top

2 楼Bruce_H21(无痕)回复于 2005-12-22 20:04:11 得分 0

生成的数据实体对象的数量和数据表一致Top

3 楼kason_j(伊松)回复于 2005-12-22 20:18:14 得分 0

帮顶Top

4 楼LanseGhost(LanseGhost)回复于 2005-12-22 20:56:39 得分 0

继续等待~~~Top

5 楼LanseGhost(LanseGhost)回复于 2005-12-23 08:39:02 得分 0

顶~~Top

6 楼LanseGhost(LanseGhost)回复于 2005-12-23 10:27:45 得分 0

ddTop

你可能对以下的问题也比较感兴趣....