У меня есть две таблицы: Users
& Profiles
. Пользователь имеет один профиль (1: 1), профиль может быть затронут многими пользователями, каждый профиль имеет много модулей, каждый модуль имеет множество действий.Структура сущности - Избегайте круговой связи в сериализации
Я отправляю этот объект из asmx на страницу aspx, используя прямой служебный вызов.
У меня возникла ошибка из-за ленивой загрузки ... поэтому я отключил ленивую загрузку.
это прекрасно работает, я получил своего пользователя с нулевым профилем.
Чтобы построить дерево меню, мне нужно получить профиль. Я включил его:
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;
Я получил эту ошибку в функции яваскрипта вызова:
Круговая ссылка была обнаружена при сериализации объекта типа «CDU.Entities.Models.User».
Когда я сделал быстрый часы на пользовательском объекте, в ASMX (перед отправкой), я обнаружил, что профиль включен в список пользователей, которые имели этот pofile, каждый пользователь имеет свой профиль загружается ... и т.д.
Любая идея, пожалуйста?
Что вы используете для сериализации Json? JSON.NET? –
Почему вы выполняете запрос, а затем перезаписываете его другим запросом, не делая ничего с первым запросом? –