服务器:
通过继承DomainService(LinqToEntitiesDomainService),
构建Service在其内部查找(更新)数据,其内部可以是内存对象,数据库(linq to Entities)等,
实体有一些内部类metadata来约束其验证,*.shared.cs文件一般为实体的分布类(提供一些方法,或属性),
自定义的验证方法
客户端:
编译后,在客户端生成对于的代码,继承在DomainContext,将Service中的查询方法进行对应,
在客户端的使用方法,由于其实还是异步的,类似的linq to sql延迟,只有在load之后,数据才会加载,
而查询的的语句是操作的EntityQuery<T>对象,load之后把查询到的对象填充到DomainContext中
通信:
客户端的查询代码做后变成查询语句,通过地址栏传给服务器,服务器在将查询结果以json的形式返回,
在客户端反序列化后为对象后展示,
总结:
微软所做的就是定义了一种查询语句,通过url的方式进行传送,让开发者直接操作对象,
如果把ado.net data service 理解成sql,我们从地址栏敲查询语句的话,
ria service就是linq to sql,不必自己去拼字符串来写查询了