延迟加载
序列化 JSON 时崩了?99% 是 EF 延迟加载惹的祸,三种解法拿走不谢
本文介绍了EF 默认开启延迟加载,查主表时不带明细,等你要用时才偷偷查数据库。如果此时 DbContext 已释放,就会报 ObjectDisposedException。解决方案有三:关掉延迟加载、用 Include/ThenInclude 提前加载、或用 DTO 投影。EF6 和 EF Core 的 Include 语法有差异,EF Core 的 ThenInclude 更直观。最佳实践:Web 应用全局关闭延迟加载,只读查询用 AsNoTracking,优先用 DTO。记住:在 DbContext 活着的时候,把需要的数据都显式加载好。