私は現在、Entity Framework (.NET Framework バージョン 3.5 SP1 にパッケージ化されたバージョン) と多くの AJAX ベースの機能の両方を利用するプロジェクトに取り組んでおり、クライアント側で jQuery を使用し、ASP.NET WebMethods を使用して実装しています。サーバー側。
通常、次のようにエンティティをパラメーターとして受け入れる WebMethod を使用して、新しいエンティティを作成します。
[WebMethod]
public static void Add(User user);
このメソッドを呼び出すときは、JavaScript で (プロパティに関して) エンティティに似たオブジェクトを組み立てて、JSON 文字列として渡します。ただし、関連するエンティティを多対多の関係で渡そうとすると、問題が発生しました。User エンティティが Flight エンティティと 1 対多の関係を持っているとします。複数の (新しい) フライトを持つ新しいユーザーを追加すると、問題が発生することがわかっています。次のアプローチ:
this.user.Flight = [];
var x = new Object();
// Code here to populate x's properties
this.user.Flight.push(x);
// Repeat again for more flights
List を EntityCollection に変換できないことを示す ASP.NET エラー (逆シリアル化段階) が発生します。
次に、このアプローチを試しました:
this.user.Flight = {};
var x = new Object();
// Code here to populate x's properties
this.user.Flight.firstFlight = x;
// Repeat again for more flights
この例では、WebMethod は正常に呼び出されましたが、フライトは完全に失われました (WebMethod で user.Flight.Count() を呼び出すと 0 が返されました)。
EntityCollection の複数の Flight を WebMethod に渡す方法を知っている人はいますか?