Silverlight + DomainService 简易框架之二完成查询 *** 作

Silverlight + DomainService 简易框架之二完成查询 *** 作,第1张

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

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

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

1.定义查询处理委托

public delegate voID SelectHander<T>(IEnumerable<T> data);

2.编写BLL代码

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

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

2.1普通全查功能

    public class RoleBLL    {        public static voID FindAll(SelectHander<UserRoles> sh)        {            var db = DB.db;            var m = db.Load<UserRoles>(db.GetUserRolesquery());            m.Completed += (a,b) =>            {                sh(m.EntitIEs);                            };        }    }

2.2如果要完成带条件查询需要在Web服务端进行处理

2.2.1 修改原来的

public  class DomainService1 : linqToEntitIEsDomainService<MyBookShopEntitIEs>

改为

public partial class DomainService1 : linqToEntitIEsDomainService<MyBookShopEntitIEs>

这样自己就可以再写一个局部类来扩充DomainService1的代码

    public partial class DomainService1    {        public Iqueryable<UserRoles> GetUserRolesByname(string name)        {            return this.ObjectContext.UserRoles.Where(r => r.name.StartsWith(name));        }    }


2.2.2这样在Silverlight端的RoleBLL就可以调用服务端的查询,Silverlight端代码如下:

    public class RoleBLL    {        public static voID FindAll(SelectHander<UserRoles> sh)        {            var db = DB.db;            var m = db.Load<UserRoles>(db.GetUserRolesquery());            m.Completed += (a,b) =>{sh(m.EntitIEs);};        }        public static voID FindAllByname(string name,SelectHander<UserRoles> sh)        {            var db = DB.db;            var m = db.Load<UserRoles>(db.GetUserRolesBynamequery(name));            m.Completed += (a,b) => { sh(m.EntitIEs); };        }    }

3.Silverlight表示层端调用

        public MainPage()        {            InitializeComponent();            this.Loaded += new RoutedEventHandler(MainPage_Loaded);        }        voID MainPage_Loaded(object sender,RoutedEventArgs e)        {            RoleBLL.FindAll(datas => { userRolesDataGrID.ItemsSource = datas; });        }

效果:

条件查询代码:

        private voID btnquery_Click(object sender,RoutedEventArgs e)        {            RoleBLL.FindAllByname(txtname.Text,datas => { userRolesDataGrID.ItemsSource = datas; });        }

效果:

总结

以上是内存溢出为你收集整理的Silverlight + DomainService 简易框架之二完成查询 *** 作全部内容,希望文章能够帮你解决Silverlight + DomainService 简易框架之二完成查询 *** 作所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1064187.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存