RIA服务是一种服务器端技术,可自动生成客户端(Silverlight)对象,这些对象将为您与服务器进行通信并提供客户端验证。
RIA服务内部的主要对象是DomainService
,通常是a LinqToEntitiesDomainService
,它连接到LinqToEntities模型。
RIA服务中要记住的关键是它主要是一个复杂的构建技巧。创建域服务并编译解决方案时,将生成域服务的客户端表示。该客户端表示具有相同的接口。假设您CustomerService
使用method 创建服务器端域服务IQueryable<Customer> GetCustomersByCountry
。在构建解决方案时,将在Silverlight项目中生成CustomerContext
一个名为method的类GetCustomersByCountryQuery
。现在,您可以在客户端上使用此方法,就像在服务器上调用它一样。
更新,插入和删除遵循不同的模式。创建域服务时,可以指示是否要启用编辑。然后在服务器端域服务中生成相应的更新/插入/删除方法。但是,客户端部分没有这些方法。您所拥有的CustomerContext
是一种称为的方法SubmitChanges
。那么这是如何工作的:
- 对于更新,您只需更新现有客户的属性(通过检索
GetCustomersByCountryQuery
)。
- 对于插入,请使用
CustomerContext.Customers.Add(new Customer(...) {...})
。
- 对于删除,请使用
CustomerContext.Customers.Remove(someCustomer)
。
完成编辑后,请致电CustomerContext.SubmitChanges()
。
至于验证,您可以使用System.ComponentModel.DataAnnotations
名称空间中的验证属性来装饰服务器端对象。同样,在构建项目时,现在会自动为相应的客户端对象生成验证代码。
希望这种解释对您有所帮助。