关于三层架构多表查询时实体的实现
假如有一张  student学生表  包含  studentID 编号,studentName 学生姓名,studentClassID 班级编号;和一张 studengClass 学生班级表 包含 classID 班级编号,className 班级名称
那么,如果我查询学生表时连接语句为  “ select studentID,studentName,calssName from student left join studengClass on student.studentClassID =studengClass.classID ”
如何创建实体呢
假如我这样设置
//学生表实体
public class student
{
     private int _studentID;
     private string _studentName;
     private studengClass _studengClass;
     public int studentID
     {
        get{ return _studentID;}
        set{ _studentID=value;}
     }
     public string studentName
     {
        get{ return _studentName;}
        set{ _studentName=value;}
     }
     public studengClass studengClassMo
         {
        get{ return _studengClass;}
        set{ _studengClass=value;}
     }
}
//班级表实体
public class studengClass
{
     private int _classID ;
     private string _className;
     public int classID
     {
        get{ return _classID ;}
        set{ _classID =value;}
     }
     public string className
     {
        get{ return _className;}
        set{ _className=value;}
     }
}
这样,查询的时候,用视图查出,填充到此学生实体对象,解决了多表查询的问题,基于视图设计实体对象,更改表结构时,又易于扩展。
------解决方案--------------------假设查询出来结果存到了DataTable dt中。
studentID,studentName,calssName
那么就是
foreach(DataRow row in dt.Rows)
{
 Student obj = new Student();
 obj.ID = row["studentID"];
 obj.studentName= row["studentName"];
 obj.studengClassMo = new studengClass();
 obj.calssName = row["calssName"];
 //sql中少了classid
 //然后add obj到Student list中
}
------解决方案--------------------用扩展类来实现   public partial class ss 也就是将一个类分成两个文件 命名空间和类名不变