6. 关于上述操作中可能导致的数据冲突对应的解析方法
返回bool类型,前三个参数必须使用实体类型,作为方法的第一个参数,第四个参数必须为一个bool类型。另外,前三个参数依次对应于:当前实体,最初的实体,要保存的实体。
另外,方法前面必须冠以Resolve,例如:
【注意】
A.要使用上面的解析方法,必须确保事先存在一个更新方法。
B.在Siverlight RIA服务编程中,当多个用户同时更新同一个表格的同一条记录数据时将导致异常抛出,因此建立上面的解析方法进行解析非常重要。
7. 服务操作方法
仅有一点要求,方法名前面必须冠以ServiceOperation属性,例如:
[ServiceOperation]
public byte[] GetProductImage(){...}
8. 关于IgnoreOperation属性
有些情况下,我们可能想把某些域方法显式地排除在外,即虽然已经建立了遵循上面约定的方法,但是不想让系统识别这是一个域方法。此时,我们可以在这些方法的前面冠以IgnoreOperation属性。于是,系统便会把此方法识别为可忽略的方法。
例如:
[IgnoreOperation]
public void InsertEmployee(Employee newEmployee) {...}
【注意】IgnoreOperation属性可以应用于所有域方法。
小结
在本文中,我们通过一个简单的例子讨论了Silverlight 3 RIA开发中涉及到的定制方法及普通服务操作问题,并且归纳对比了典型CRUD域操作、自定义型域操作及普通服务操作。所有这些,也都是Silverlight 3 RIA开发中的必需。
很显然,现在借助于RIA服务,Silverlight编程的数据访问及有关处理将得到极大程度的简化。但同时,也有许多新的知识需要更新与学习。