微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Silverlight + DomainService 简易框架之一 完成增删改操作

使用Silverlight + DomainService进行开发时我们可以在Silverlight项目中创建一个BLL层用于Silverlight调用如下图所示

在Silverlight端进行调用要采用异步调用,因此在这中间加入了一些Lambda表达式进行简化操作

为了实现这种机制在Sliverlight项目中做了这么几项工作

1.定义用于执行增加修改删除操作的回发处理委托

[csharp]  view plain copy
  1. public delegate void OptionHander(bool hasError);  

参数只有一个:hasError用于表示从服务器执行操作是否有错误

2.编写BLL代码

我这里写了一个DB类用于处理DomainService对象,代码如下:

copy
    class DB  
  1. {  
  2.     private static DomainService1 _db;  
  3.     static DomainService1 db  
  4.     {  
  5.         get  
  6.         {  
  7.             if (_db == null) _db = new DomainService1();  
  8.             return _db;  
  9.         }  
  10.     }  
  11. }  

基于前面的委托我们进行相关操作,我这用了一个简单表UserRoles表进行操作,UserRoles只有两个字段Id和Name

2.1增加操作

copy
    class RoleBLL  
  1. static void AddRole(UserRoles role,OptionHander ev)  
  2.     {  
  3.         var db = DB.db;  
  4.         db.UserRoles.Add(role);              
  5.         db.SubmitChanges((ex) =>{ev(ex.HasError);}, null);  
  6.     }       
  7. }  

2.2修改操作

copy
    {     
  1. void UpdateRole( OptionHander ev)  
  2.         db.SubmitChanges((ex) =>{ev(ex.HasError);},153); background-color:inherit; font-weight:bold">null);  
  3.          
  4.     }  
  5. 2.3删除操作

    copy
    void DeleteRole(UserRoles role, OptionHander ev)  
  1.         db.UserRoles.Remove(role);  
  2.     }     
  3.  

    可以看到非常的简单,只是进行了相关的封装

    3.表示层调用

    3.1增加调用

    copy
    UserRoles ur = new UserRoles{Name="haha"};              
  1. RoleBLL.AddRole(ur, err => {   
  2. if(!err){  
  3.         MessageBox.Show("增加成功!");  
  4.     }else{  
  5.         MessageBox.Show("增加失败!");  
  6.     }                
  7. });  

3.2修改调用

copy
    UserRoles ur =....           
  1. RoleBLL.UpdateRole(ur,248); line-height:18px">         MessageBox.Show("修改成功!");  
  2.         MessageBox.Show("修改失败!");  
  3. 3.3删除调用

    copy
      UserRoles ur =.....              
    1. RoleBLL.DeleteRole(ur,248); line-height:18px">         MessageBox.Show("删除成功!");  
    2.         MessageBox.Show("删除失败!");  
    3. });  

    版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

    相关推荐