0

У меня есть 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' содержит циклы и не может быть сериализован, если ссылка отслеживание отключено. ».

ответ

0

решения является для украшения UserProfile и webpages_Roles классов с [DataContract(IsReference = true)] атрибута

Ответ был найден в this arcticle

 Смежные вопросы

  • Нет связанных вопросов^_^