是否有任何自动方法可以避免Web API EF WebApi Self引用循环问题

时间:2015-09-05 08:35:20

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

是否有任何自动方法可以避免EF Web API中的自引用循环问题,以及 我想知道LazyLoadingEnabled = false对Web API应用程序性能的影响

我首先在ASP.Net 4.5 Web API中使用EF数据库

但是当尝试从Web API获取数据时出现错误

  

错误检测到类型System.data.entity的自引用循环   发生

然后我设置

config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling 
= Newtonsoft.Json.ReferenceLoopHandling.Ignore; 

它会修复错误,但它会返回大量数据:

[
employee1 : {
    name: "name",
    department : {
        name: "departmentName",
        employees : [
            employee1 : {
                name: "name",
                department : {
                    name: "departmentName",
                    employees : [
                        employee1 : {
                            name: "name",
                            department : {
                                and again and again....
                            }
                    ]
                }
            }
        ]
    }
}

然后我在datacontext

中禁用了LazyLoading
this.Configuration.LazyLoadingEnabled = false;

现在只撤回所需数据,但我想知道这种方法有什么交易吗?

Datacontext位于单独的类库中,并被其他项目使用,是否会影响应用程序的性能?

它不是exclude-reverse-navigation in EF的副本我正在寻找一些设置更改或修复(我可以更改TT生成器文件,如果它解决了问题)不止一个人正在处理项目而我不能强迫他人以特定方式编写代码。

0 个答案:

没有答案