私は2つのテーブルを持っています: Users
& Profiles
. ユーザーには 1 つのプロファイル (1:1) があり、プロファイルは多くのユーザーに影響を与える可能性があり、各プロファイルには多くのモジュールがあり、各モジュールには多くのアクションがあります。
直接サービス呼び出しを使用して、このオブジェクトを asmx から aspx ページに送信しています。
遅延読み込みが原因でエラーが発生したため、遅延読み込みを無効にしました。
this.Configuration.LazyLoadingEnabled = false;
これは正常に機能します。プロファイルが null のユーザーを取得しました。
メニュー ツリーを作成するには、プロファイルを取得する必要があります。私はそれを含めました:
User user = new User();
using (cduContext db = new cduContext())
{
// get the user
string encryptedPassword = Encryption.Encrypt(password);
user = (from u in db.Users
where u.UserName.Equals(login) &&
u.Password.Equals(encryptedPassword)
select u).FirstOrDefault();
// Include the users profile
user = db.Users.Include("Profile").FirstOrDefault();
}
return user;
JavaScript呼び出し関数でこのエラーが発生しました:
タイプ 'CDU.Entities.Models.User' のオブジェクトをシリアル化中に、循環参照が検出されました。
ユーザーオブジェクトを asmx で(送信する前に)簡単に監視したところ、プロファイルにこのプロファイルを持っているユーザーのリストが含まれていることがわかりました。各ユーザーにはプロファイルが読み込まれています...など
任意のアイデアをお願いします?