【问题标题】:ef6 linq method returning $ref for nested entries in queryef6 linq 方法为查询中的嵌套条目返回 $ref
【发布时间】:2019-01-31 21:06:54
【问题描述】:

当我在提琴手中监视结果时,我的 EF6 linq 方法系统正在返回 $ref。如果我在我的 webapi 中查看本地窗口,所有内容都会正确填充,但不会在返回的实际结果中。它只影响嵌套条目。有人知道我在做什么错吗? (我在 EF6 中从数据库创建模型)

            var student = dbEF.Accounts
                        .Where(x => x.AccountNumber == acctNum)
                        .Select(x => new DTOCrmDetails()
                        {
                            AccountNumber = x.AccountNumber,

                            CommissionId = x.CommissionId,
                            Commission = x.Commission,

                            ManagerID = x.ManagerID,
                            ManagerName = x.Manager.ManagerName,
                            Manager = x.Manager,

                            Employees = x.Manager.Employees,

                            WireInstructionsUSD = x.Manager.WireInstructionsUSDs

                        //Mapping_ManagersExecutingBrokers = x.Manager.Mapping_ManagersExecutingBrokers

                    }).FirstOrDefault();

        return student;

这些是我的设置。

var json = config.Formatters.JsonFormatter; json.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.Objects; config.Formatters.Remove(config.Formatters.XmlFormatter); config.Formatters.JsonFormatter.SerializerSettings.Formatting = Newtonsoft.Json.Formatting.Indented; config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

【问题讨论】:

  • 应用的序列化程序设置是什么样的?
  • 如何检查?
  • 请编辑您的问题,而不是在 cmets 中添加代码。反正设置explain your finding.
  • 我注释掉了 preserveReferencesHandling.Objects 所在的行,现在我在 fiddler 中遇到错误...为“经理”阻止了自引用循环

标签: linq entity-framework-6 asp.net-web-api2


【解决方案1】:

您需要在实体框架 dbcontext 中禁用延迟加载。

类似这样的方式:

dbEF.Configuration.LazyLoadingEnabled = false;

【讨论】:

  • 我将 [JsonIgnore] 添加到未出现的虚拟属性中并且它正在工作。知道这是做什么的以及为什么现在可以工作吗?
猜你喜欢
  • 1970-01-01
  • 2017-04-15
  • 1970-01-01
  • 1970-01-01
  • 2018-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多