Visual Studio 2012を使用しており、C#で開発しています。WCF Webサービスの作業を開始したばかりで、モデルファーストのアプローチでデータベースを作成しました。これまでのところ、単純なテーブルにエントリを挿入、更新、削除、および取得できましたが、問題が発生しました。別のテーブルと関係があるテーブルのパラメーターを送信する方法がわかりません。
私の疑問をよりよく説明するために、ここに例があります。Regionsテーブルがあり、次にClustersと呼ばれるこの別のテーブルがあります。リージョンには多くのクラスターがあり、クラスターはリージョンに属しています。
EFによって作成された結果のクラスは、次のようになります。
public partial class Regions
{
public Regions()
{
this.Clusters = new HashSet<Clusters>();
}
public int RegionId { get; set; }
public string Name { get; set; }
public string Point { get; set; }
public System.DateTime CreatedDateTime { get; set; }
public System.DateTime UpdatedDateTime { get; set; }
public virtual ICollection<Clusters> Clusters { get; set; }
}
public partial class Clusters
{
public int ClusterId { get; set; }
public System.DateTime CreatedDateTime { get; set; }
public System.DateTime UpdatedDateTime { get; set; }
public virtual Regions Region { get; set; }
}
このような関係で、どうすれば新しいクラスターを追加できますか?新しいクラスターを追加するためのエンドポイントは、JSON文字列である文字列を受け取り、それをクラスターオブジェクトに逆シリアル化します。私はこのように逆シリアル化します:
Clusters cluster = new JavaScriptSerializer().Deserialize<Clusters>(data); //data is the JSON string
この場合、JSON文字列に送信する情報はクラスターが属するリージョンのみです(オブジェクトが作成されたときの日時はサーバー側に追加されます)が、どのように送信しますかリージョン情報をJSONに追加して、クラスターに追加できるようにしますか?
つまり、次のようなJSON文字列を送信する必要がありますか?
{"RegionId":2}
そうすると、エントリが作成されないので、他に何かする必要がありますか?
私はEFおよびWCFWebサービスを使用するのは初めてですが、助けていただければ幸いです。