wcfria,使用Entity Framework和WCF Ria Services开发SilverLight之7:多个Domain Service间共享Poco实体

在前两篇中,我们讲了在SL端通过Entity Framework和WCF Ria Services实现联表查询,其中最关键的是为实体类中的相关属性设定为Include特性,如下:
public class PrinSubVm : NotificationObject { public DomainServiceCategory DomainServiceCategory { get; set; } public DomainServiceProduct DomainServiceProduct { get; set; } private IList categoryWithProducts; public IList CategoryWithProducts { get { return categoryWithProducts; } set { categoryWithProducts = value; this.RaisePropertyChanged>(() => this.CategoryWithProducts); } } public PrinSubVm() { DomainServiceCategory = new Web.DomainServiceCategory(); DomainServiceProduct = new Web.DomainServiceProduct(); //获取CategoryID(cid)为1的目录 DomainServiceCategory.Load(DomainServiceCategory.GetCategoryWithProductsWithIDQuery(1), new Action>(this.GetCategoryWithProductsWithIDCallBack), null); //获取CategoryID(cid)为1的目录下的商品 DomainServiceProduct.Load(DomainServiceProduct.GetProductsByCategoryIDQuery(1), new Action(this.GetProductsByCategoryIDCallBack), null); //为多个域之间共享实体 DomainServiceCategory.AddReference(typeof(Product), DomainServiceProduct); } void GetCategoryWithProductsWithIDCallBack(LoadOperation arg) { CategoryWithProducts = arg.Entities as IList; } void GetProductsByCategoryIDCallBack(LoadOperation arg) { //ProductAndCategorys = arg.Entities as IList; } }
有一点我们必须注意,如果要获取从表的数据,仅获取需要的从表记录就可以了,不要加载全部记录,想想那些动辄几百万记录的业务表。SL客户端会自动根据实体的KEY值去关联。
反过来,我们也可以实现从表关联主表。在这里就不一一举例了。但是最后的UI可以作为演示。
imageimageimageimageimageimage使用Entity Framework和WCF Ria Services开发SilverLight之7:多个Domain Service间共享Poco实体wcfria
imageimageimageimageimageimageimage使用Entity Framework和WCF Ria Services开发SilverLight之7:多个Domain Service间共享Poco实体wcfria
imageimageimageimageimageimageimageimage使用Entity Framework和WCF Ria Services开发SilverLight之7:多个Domain Service间共享Poco实体wcfria
本文源码下载:SLOperation20110705.rar
Tags:  wcfria

延伸阅读

最新评论

发表评论