博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

分层开发时Data层使用的基本方法

Posted on 2008-02-22 14:49  Boscoing  阅读(215)  评论(0)    收藏  举报
 
       对后台数据库进行操作通常使用ADO等技术,分层开发时把一个表映射成一个实体类,再定义相应的数据接口类即可,对数据库的操作转换成了对类的操作,通常按以下方式来定义函数学(学习资料)

实体类Employee中的属性,方法和事件

数据接口
EmployeeService中的属性和方法

     下面是使用Employee表做示例,可以将它替换成任何一个如 Department部门表, Product物料表, PurchasingOrderHeader订单表, PurchasingOrderDetail订单分录表.

   
//建立一个新的Employee类的数据接口
   
EmployeeService employeeService = new EmployeeService();
   
    //建立一个新的Employee
实体对象
    Employee employee = new Employee
();

    employee.EmployeeName = "新的Employee
名称";
    employee
.CreatedDate = DateTime.Now;

    //获取数据库中全部的 Employee
实体GetAll()
    //TList<T>是强类型的模板容器,因为其继承自BindingList<T>、IBindingList、IBindingListView因此可以被数据组件作为数据源绑定
    TList<Employeee> employeeList = employeeService.GetAll(); 

   
//从数据库中查找Find()
    TList<Employee> employeeList = employeeService.Find(
"IsActive = 1"); 

    //分页获取GetPaged()
    TList<Employee> employeeList = employeeService.GetPaged("IsActive =1 AND EmployeeName
LIKE 'smi%'"); 

    //根据Employee的外键获取实体集合GetByFk()
    TList<
Employee> employeeList = employeeService.GetByCustomerId(25); 

    //由主键获取实体Get()
   
Employee employee = employeeService.Get(new EmployeeKey(23)); 

    //插入实体 Insert()
    employeeService.Insert(employee);

    Response.Write(employee.EmployeeID); // is now populated 

    //从数据库中删除一个实体 Delete()
    bool result = employeeService.Delete(employee); 

    //从数据库中删除一个实体(根据实体的主键)Delete()
    bool result = employeeService.Delete(23); 

    //更新一个实体Update()
    employee.EmployeeName = "我有新名字了";
    employeeService.Update(employee); 

    //GetByManyToManyl()
    TList<
Customers> employeeList  =  employeeService.GetCustomers_From_EmployeeReceivable(); 

    //加载实体的字实体 DeepLoadByID()
   
Employee employee = employeeService.DeepLoadByEmployeeID(id, false, DeepLoadType.IncludeChildren,typeof(Customers), typeof(TList<ChartOfEmployee>)); 

    //批量从数据库取实体,包含子实体DeepLoadByID() ,根据外键
    TList<
Employee> employee = employeeService.DeepLoadByCustomerID(id, false, DeepLoadType.IncludeChildren, typeof(Customers), typeof(TList<ChartOfEmployee>)); 

    //获取一个实体(已经被实例化)的子实体
    employeeService.DeepLoad(myEmployeeEntity, false,DeepLoadType.IncludeChildren,
        typeof(Customers), typeof(TList<ChartOfEmployee>)); 

    //批量保存 DeepSave
    employeeService.DeepSave(myEmployeeEntity, false, DeepSaveType.IncludeChildren,
        typeof(Customers), typeof(TList<ChartOfEmployee>));