silverlight   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Silverlight + DomainService 简易框架之三完成一个数据(非集合)查询操作大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

使用Silverlight + Domainservice进行开发时我们可以在Silverlight项目中创建一个BLL层用于Silverlight调用如下图所示 要完成数据查询功能在Sliverlight项目中做了这么几项工作 1.定义查询处理委托 public delegate void SELEctOneHander<T>(T data); 2.编写BLL代码 我这里写了一个DB类用于处

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

Silverlight + DomainService 简易框架之三完成一个数据(非集合)查询操作

要完成数据查询功能在Sliverlight项目中做了这么几项工作

1.定义查询处理委托

@H_301_17@ public delegate void SELEctOneHander<T>(T data);

2.编写BLL@L_772_6@

我这里写了一个DB类用于处理Domainservice对象,@L_772_6@如

@H_301_17@ public class DB { private static Domainservice1 _db; public static Domainservice1 db { get { if (_db == null) _db = new Domainservice1(); return _db; } } }

单数查询功能,例如前面文章中的分页查询中的总记录条数就用此方式进行查询的,要完成这种只查询一条记录的需要对原有的Domainservice进行扩充

修改原有的Domainservie改为局部类,将如下@L_772_6@改为:

@H_301_17@public lass Domainservice1 : LinqToEntitiesDomainservice<MyBookShopEntities>

修改为:

@H_301_17@public partial class Domainservice1 : LinqToEntitiesDomainservice<MyBookShopEntities>


另外创建一个DomainserviceEx的文件,编写Domainservice1的扩展类如下:

@H_301_17@ public partial class Domainservice1 { public IQueryable<Books> GetBooksByPage(int pageIndex,int pageSizE) { return this.ObjectContext.books.OrderBy(b=>b.Id).Skip(pageIndex * pageSizE).Take(pageSizE); } public int GetBookCount() { return this.ObjectContext.books.OrderBy(b => b.Id).Count(); } }

这样就可以在Silverlight的UserBLL中调用这两个数据方法:

@H_301_17@ public class BookBLL { public static void FindAllByPage(int pageIndex,int pageSize,SELEctHander<Books> sh) { var db=DB.db; var m= db.Load<Books>(db.GetBooksByPageQuery(pageIndex,pageSizE)); m.Completed += (a,b) => { sh(m.Entities); }; } public static void GetBookCount(SELEctOneHander<int> sh) { var db = DB.db; var m = db.GetBookCount(); m.Completed += (a,b) => { sh(m.value); }; } }


3.在Silverlight的表示层就可以调用BookBLL来完成分页@L_772_6@

@H_301_17@ //加载时绑定数据 private void LayoutRoot_Loaded(object sender,RoutedEventArgs E) { //第一页数据 BookBLl.FindAllByPage(0,10,datas => { booksDataGrid.Itemssource = datas; }); //获取页码 BookBLl.GetBookCount(data => { hahaPager1.Pi.RecordCount = data; hahaPager1.Pi.PageSize = 10; hahaPager1.Pi.Compute(); hahaPager1.Render(); }); } //页码改变时重新获取下一页数据 private void hahaPager1_PageIndexChanged(object sender,EventArgs E) { var pi=hahaPager1.Pi; BookBLl.FindAllByPage(pi.PageIndex,pi.PageSize,datas => { booksDataGrid.Itemssource = datas; }); }


效果就和前面的文章一样了:

Silverlight + DomainService 简易框架之三完成一个数据(非集合)查询操作

有网友Sky_Dhx 需要列出我的工程文件目录结构如下:

Silverlight + DomainService 简易框架之三完成一个数据(非集合)查询操作

大佬总结

以上是大佬教程为你收集整理的Silverlight + DomainService 简易框架之三完成一个数据(非集合)查询操作全部内容,希望文章能够帮你解决Silverlight + DomainService 简易框架之三完成一个数据(非集合)查询操作所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。