检测到属性'项目的自引用循环。与类型'项目'。路径'项目[0] .requests [0]

时间:2014-07-26 15:51:40

标签: c# .net entity-framework asp.net-web-api json.net

我有这个项目映射,我正在努力与模型的JSON.NET序列化。 我试过lazyloading = false,也禁用了代理。但是,当我为每个项目请求获取所有项目时,它无法正常工作。

这是我的映射:

Class ProjectMapper()
{
    this.HasMany(p => p.Stakeholders).WithMany(u => u.Projects).Map(mc =>
    {
        mc.MapLeftKey("ProjectID");
        mc.MapRightKey("UserID");
        mc.ToTable("userprojects");
    });

    this.HasMany(p => p.Requests).
        WithOptional(r => r.Project).HasForeignKey(r => r.ProjectID)
        .WillCascadeOnDelete(false);
}

Class RequestMapper()
{
    this.HasOptional(r => r.Project).WithMany(p => p.Requests).HasForeignKey(r=>r.ProjectID);
}

Class UserMapper()
{
    this.HasMany(u => u.Projects).WithMany(p => p.Stakeholders).Map(mc =>
        {
            mc.MapLeftKey("ProjectID");
            mc.MapRightKey("UserID");
            mc.ToTable("userprojects");
        });
}

我还更改了全局级别的设置:

GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;

但是解决方案是什么?在冲到客户端之前,我是否必须转到POCO模型并将所有EF模型复制到POCO。

0 个答案:

没有答案