使用Silverlight + DomainService进行开发时我们可以在Silverlight项目中创建一个BLL层用于Silverlight调用如下图所示
在Silverlight端进行调用要采用异步调用,因此在这中间加入了一些Lambda表达式进行简化 *** 作
为了实现这种机制在Sliverlight项目中做了这么几项工作
1.定义用于执行增加,修改和删除 *** 作的回发处理委托
[csharp] view plain copy public delegate voID OptionHander(bool hasError);参数只有一个:hasError用于表示从服务器执行 *** 作是否有错误
2.编写BLL代码
我这里写了一个DB类用于处理DomainService对象,代码如下:
copy class DB { private static DomainService1 _db; static DomainService1 db { get { if (_db == null) _db = new DomainService1(); return _db; } } }基于前面的委托我们进行相关 *** 作,我这用了一个简单表UserRoles表进行 *** 作,UserRoles只有两个字段ID和name
2.1增加 *** 作
copy class RoleBLL static voID AddRole(UserRoles role,OptionHander ev) { var db = DB.db; db.UserRoles.Add(role); db.submitChanges((ex) =>{ev(ex.HasError);}, null); } }2.2修改 *** 作
copy { voID UpdateRole( OptionHander ev) db.submitChanges((ex) =>{ev(ex.HasError);},153); background-color:inherit; Font-weight:bold">null); } 2.3删除 *** 作 copy voID DeleteRole(UserRoles role, OptionHander ev) db.UserRoles.Remove(role); }可以看到非常的简单,只是进行了相关的封装
3.表示层调用
3.1增加调用
copy UserRoles ur = new UserRoles{name="haha"}; RoleBLL.AddRole(ur, err => { if(!err){ MessageBox.Show("增加成功!"); }else{ MessageBox.Show("增加失败!"); } });3.2修改调用
copy UserRoles ur =.... RoleBLL.UpdateRole(ur,248); line-height:18px"> MessageBox.Show("修改成功!"); MessageBox.Show("修改失败!"); 3.3删除调用 copy UserRoles ur =..... RoleBLL.DeleteRole(ur,248); line-height:18px"> MessageBox.Show("删除成功!"); MessageBox.Show("删除失败!"); }); 总结以上是内存溢出为你收集整理的Silverlight + DomainService 简易框架之一 完成增删改 *** 作全部内容,希望文章能够帮你解决Silverlight + DomainService 简易框架之一 完成增删改 *** 作所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)