使用Silverlight + DomainService进行开发时我们可以在Silverlight项目中创建一个BLL层用于Silverlight调用如下图所示
在Silverlight端进行调用要采用异步调用,因此在这中间加入了一些Lambda表达式进行简化操作
为了实现这种机制在Sliverlight项目中做了这么几项工作
public delegate void OptionHander(bool hasError);
参数只有一个:hasError用于表示从服务器执行操作是否有错误
2.编写BLL代码
我这里写了一个DB类用于处理DomainService对象,代码如下:
public class DB { private static DomainService1 _db; public static DomainService1 db { get { if (_db == null) _db = new DomainService1(); return _db; } } }
基于前面的委托我们进行相关操作,我这用了一个简单表UserRoles表进行操作,UserRoles只有两个字段Id和Name
2.1增加操作
public class RoleBLL { public static void AddRole(UserRoles role,OptionHander ev) { var db = DB.db; db.UserRoles.Add(role); db.SubmitChanges((ex) =>{ev(ex.HasError);},null); } }
2.2修改操作
public class RoleBLL { public static void UpdateRole( OptionHander ev) { var db = DB.db; db.SubmitChanges((ex) =>{ev(ex.HasError);},null); } }
2.3删除操作
public class RoleBLL { public static void DeleteRole(UserRoles role,OptionHander ev) { var db = DB.db; db.UserRoles.Remove(role); db.SubmitChanges((ex) =>{ev(ex.HasError);},null); } }
可以看到非常的简单,只是进行了相关的封装
3.表示层调用
UserRoles ur = new UserRoles{Name="haha"}; RoleBLL.AddRole(ur,err => { if(!err){ MessageBox.Show("增加成功!"); }else{ MessageBox.Show("增加失败!"); } });
UserRoles ur =.... RoleBLL.UpdateRole(ur,err => { if(!err){ MessageBox.Show("修改成功!"); }else{ MessageBox.Show("修改失败!"); } });
UserRoles ur =..... RoleBLL.DeleteRole(ur,err => { if(!err){ MessageBox.Show("删除成功!"); }else{ MessageBox.Show("删除失败!"); } });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。