WCF RIA 服务 (十六)- 表示模型


WCF RIA Services允许我们创建数据模型来综合从数据访问层得到的不同实体数据。这个模型就是表示模型。当我们不想把数据层的数据直接公开给客户端时,会使 用这个特性。当使用表示模型时,可以只修改表示模型而不是客户端来回应数据访问层中的改动。还可以设计一个综合那些仅与客户端用户相关的字段的模型,来简 化客户端代码。
创建表示模型
需要用来维护数据完整性的数据库结构可能会比在客户端应用中需要的那些实 体更复杂。我们可以通过把那些与应用相关的字段组合进一个表示模型,来简化这个数据结构。例如,在AdventureWorksLT示例数据库中,我们通 过Customer,CustomerAddress,Address表来检索客户和地址数据。
通过在服务端项目中创建一个类来创建表示模型,并定义需要的成员属性。这些定义的成员属性对应着 你想从实体公开的成员属性。例如下面的示例,在服务端创建一个类,来表示那些从Customer、CustomerAddress、Address表中仅 仅需要的字段。
在表示模型中查询和修改数据
在创建了表示模型后,通过添 加一个和这个表示类型交互的domain service来向客户端公开。下面的示例展示了一个从DomainService类派生的域服务。


为 了检索数据,我们在Domain service中添加了一个query方法。在query方法中,从数据访问层中的实体检索相关的数据,并把这些值赋值给新的表示模型实例中对应的成员属 性。从这个query方法,要么返回一个这个表示模型类型的实例,要么返回一个表示模型类型的IQueryable。下面示例了Customer表示模型 的查询方法。

由 于在数据访问层中并没有通过domain service公开实体(Customer、CustomerAddress、Address),所以不会在客户端生成这些类型。相反,在客户端仅生成表 示模型类型。
如果想通过表示模型更新数据,我们需创建一个更新方法,并定义从表示模型向实体存贮值的逻辑。可以参考本节最后的示 例。
把值返回给客户端
提交了更改后,我们可能需要把存贮到中间层逻辑或 数据源中的值传回客户端。WCF RIA Services提供了Associate(TEntity,TStoreEntity)方法来映射从实体回到表示模型的值。在这个方法中,我们提供一个 在提交后调用的回调方法。在这个回调方法中,我们把在中间层已改动的值赋值给表示模型。通过执行这个步骤来使客户端持有当前值。
下 面是示例演示了如何更新实体中的值,并如何把修改后的数据映射回表示模型。
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值