C# 检测到属性的自引用循环';项目';类型为';项目&x27;。路径';项目[0]。请求[0]

C# 检测到属性的自引用循环';项目';类型为';项目&x27;。路径';项目[0]。请求[0],c#,.net,entity-framework,asp.net-web-api,json.net,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");

我有这个项目映射,我正在努力实现模型的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。

显示您的项目、请求和用户类。@YuliamChandra我使用模型直接与JSON.NET进行序列化。因为我刚刚禁用了懒散加载和代理。它已经开始工作了。但是,根据微软提供的性能建议文档,存在性能副作用,这是否意味着我应该对这些POCO进行另一个POCO(ViewModel)和automap()?