これは愚かな質問かもしれません。 Entity Framework Code Firstを使用しています。多対多の関係を持つ2つのクラス、UserとEventがあります。 EFがデータベーステーブルを生成するとき、私はUsers_Eventsと呼ばれる結合テーブルを作成します。この表には、User_IDとEvent_IDの2つの列があります。これまではすべてが問題ありません。LINQを使用した結合テーブルの照会
データベースからイベントを取り出し、JSONにシリアル化したいとします。イベントのユーザーを呼び出すことができない場合を除いて、これは完全に機能します。これは、循環参照を作成するためです。私がここでやりたいことは、私のテーブルを照会して、関連付けられたEvent_IDを持つすべてのUser_IDを、私がシリアル化しているイベントのIDと等しくすることです。
どうすればいいですか?
私は、あなたが予期していたように非常にうまく動作するかどうか分かりません。あなたが既にそれを試してみて、それがナビゲーション可能なコレクションをシリアライズしていたら、私の申し訳はありませんが、LINQからSQLへのこのような動作は経験しませんでした(EF4.1がはるかに違うと思います) 。私は明示的にロードオプションを指定して、シリアライズ前に関連するコレクションを取得しなければなりませんでした。シリアル化されたデータの関連するレコードを正しく整形する方法の詳細については、[このMSDNの記事](http://msdn.microsoft.com/en-us/library/bb896272.aspx)を参照してください。 – lsuarez
明示的に指定しなくても、関連オブジェクトをシリアライズしません。イベントをシリアライズします。私はイベントのユーザーをシリアル化したい。イベントのユーザーイベントをシリアル化する(循環参照を作成する)ことは望ましくありません。私が明示的に(.Include( "Users")を使用して)ユーザーを含めると、ユーザーおよびそのナビゲート可能なすべてのプロパティーも、ユーザーのイベントを含めてシリアル化されます。 – OpticalDelusion