0

リスト モデル オブジェクトを、親への参照を持つ子にマップしようとしています。Json シリアライゼーションで、「自己参照ループが検出されました」というエラー メッセージがスローされます。私のモデルクラス:

public class Event
{
    public int Id { get; set; }
    public string Name { get; set; }
    public ICollection<EventElement> EventElements { get; set; }
    ...
}

public class EventElement
{
    public int Id { get; set; }
    ...
    public int EventId { get; set; }
    public virtual Event Event { get; set; }
}

Automapper 構成でいくつかのトリックを試しました。まず、同じエラーをスローします: Mapper.CreateMap() .ForMember(vm => vm.EventElements, opt => opt.MapFrom(src => src.EventElements));

次に、リスト内の各オブジェクトに対して null を返します。 Mapper.CreateMap().MaxDepth(1);

循環ループなしで子を持つイベント データを取得するにはどうすればよいですか?

4

1 に答える 1

1

以下のように、DbContext でプロキシの作成を無効にする必要があります。

  DbContext.Configuration.ProxyCreationEnabled = false;

そして、リポジトリで「インクルード」ラムダ式を使用します

public IQueryable<Customer> GetAllCustomers()
    {
        return DbSet.AsQueryable().Include(s => s.StatusType).Include(s => s.CustomerCategory);
    }
于 2016-02-01T11:51:44.167 に答える