У меня есть WCF
сервис с включенным .edmx
файлом, созданным из существующей базы данных. При попрошайничестве возникли проблемы, что при WCF
данные уровня были успешно получены и отправлены, но в MVC Controller
появилась ошибка, что соединение было закрыто, поскольку я понял, что это было из-за Configuration.ProxyCreationEnabled = true;
, когда я изменил его на false, все, казалось, работало нормально, пока я не попытаюсь получить данные из нескольких таблиц, которые связаны.Если данные Entity Framework, полученные с помощью свойств навигации, не пусты, это вызывает ошибку
Так, .edmx
файл, есть автогенерируемая классы UserProfile
и Roles
public partial class UserProfile
{
public UserProfile()
{
this.webpages_Roles = new HashSet<webpages_Roles>();
}
public int UserId { get; set; }
public string UserName { get; set; }
public virtual ICollection<webpages_Roles> webpages_Roles { get; set; }
}
И
public partial class webpages_Roles
{
public webpages_Roles()
{
this.UserProfiles = new HashSet<UserProfile>();
}
public int RoleId { get; set; }
public string RoleName { get; set; }
public virtual ICollection<UserProfile> UserProfiles { get; set; }
}
Кроме того, в базе данных есть таблица, которая состоит из
UserId
RoleId
As Я понял, это называется Navigation Property
. Моя проблема - когда я пытаюсь отправить данные, собранные как:
List<UserProfile> result = Context.UserProfiles
.Include(s => s.webpages_Roles)
.Where(z => z.UserId == id)
.ToList();
Я получаю такую же ошибку, как, чем Configuration.ProxyCreationEnabled
было правдой. Также я заметил, что в случае, если webpages_Roles Collection
пуст, все работает нормально, но если есть хотя бы одна запись - я получаю сообщение об ошибке. Пожалуйста, помогите мне, решите.
Кроме того, я настроил услугу писать исключения, и сообщение было
webpages_Roles' содержит циклы и не может быть сериализован, если ссылка отслеживание отключено. ».