RIAサービスは、サーバーとの通信を管理してクライアント側の検証を提供するクライアント側(Silverlight)オブジェクトを自動的に生成するサーバー側テクノロジーです。
RIAサービス内の主なオブジェクトはでDomainService、通常LinqToEntitiesDomainServiceはLinqToEntitiesモデルに接続されています。
RIAサービスで覚えておくべき重要な点は、RIAサービスは主に高度なビルドトリックであることです。ドメインサービスを作成してソリューションをコンパイルすると、ドメインサービスのクライアント側の表現が生成されます。このクライアント側の表現は同じインターフェースを持っています。メソッドを使用してサーバー側ドメインサービスCustomerServiceを作成するとしますIQueryable<Customer> GetCustomersByCountry。ソリューションをビルドするとCustomerContext、メソッドを持つと呼ばれるSilverlightプロジェクト内にクラスが生成されますGetCustomersByCountryQuery。これで、サーバー上で呼び出す場合と同じように、クライアントでこのメソッドを使用できます。
更新、挿入、削除は異なるパターンに従います。ドメインサービスを作成するときに、編集を有効にするかどうかを指定できます。次に、更新/挿入/削除に対応するメソッドがサーバー側のドメインサービスで生成されます。ただし、クライアント側の部分にはこれらのメソッドはありません。あなたが持っているのCustomerContextはと呼ばれるメソッドSubmitChangesです。これはどのように機能するのですか?
- 更新の場合は、既存の顧客のプロパティ(を介して取得したものGetCustomersByCountryQuery)を更新するだけです。
- 挿入には、を使用しますCustomerContext.Customers.Add(new Customer(...) {...})。
- 削除にはを使用しますCustomerContext.Customers.Remove(someCustomer)。
編集が終わったら、を呼び出しますCustomerContext.SubmitChanges()。
検証に関しては、System.ComponentModel.DataAnnotations名前空間の検証属性でサーバー側オブジェクトを装飾できます。ここでも、プロジェクトをビルドすると、対応するクライアント側オブジェクトの検証コードが自動的に生成されます。
この説明がもう少しお役に立てば幸いです。