linq - ef6 linq 方法为查询中的嵌套条目返回 $ref
问题描述
当我在提琴手中监视结果时,我的 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();
解决方案
您需要在实体框架 dbcontext 中禁用延迟加载。
像这样:
dbEF.Configuration.LazyLoadingEnabled = false;
推荐阅读
- javascript - 全局更改最大缓冲区长度 ERR_CHILD_PROCESS_STDIO_MAXBUFFER
- rabbitmq - 当 RabbitMQ 内存警报响起时,PublishEndpoint.Publish 永远挂起
- python - 在 Python Pandas 中将宽数据重塑为长数据
- buffer - 如何使用 Spring WebClient 处理大响应而不先缓冲它
- r - 从单选按钮选择数据源后如何更新数据表?
- javascript - 文件名内容处置 - 日文字符
- javascript - 嵌套对象到二维数组
- php - WordPress 插件 ColorPicker 并写入 CSS 文件
- python - 如何将自动取消关注模块添加到后续代码?
- angular - 循环中按索引的角度调用数组