用途:在 .NET Framework 或现代 .NET 上维护、评估或迁移 Entity Framework 6(EF6)应用,帮助判断应保留 EF6、仅升级运行时,还是迁移到 EF Core。
主要能力:审计 EF6 使用情况,盘点 EDMX 设计器模型、ObjectContext 与 DbContext、virtual 导航属性的延迟加载、Database.SqlQuery<T>() 原生 SQL、存储过程映射、空间类型(DbGeography、DbGeometry)等 EF6 特有模式;将运行时迁移与 ORM 迁移分开决策,给出三条路径:在 .NET Framework 上保留 EF6、在现代 .NET 上继续用 EF6、EF6 迁移到 EF Core。
维护建议:用仓储与工作单元模式隔离数据访问;新代码优先用 DbContext 而非 ObjectContext;只读查询使用 AsNoTracking();用 [ConcurrencyCheck] 或 IsRowVersion() 配置并发令牌。
迁移建议:按限界上下文逐个迁移,而非整体数据层;对照 EF6 与 EF Core 的功能映射;用真实数据库提供程序运行集成测试,而非 InMemory;验证 dotnet ef migrations add 成功、查询结果等价、延迟加载行为符合预期。
适用场景:EF6 代码库的日常维护、数据层迁移策略规划、EDMX/Code First/旧式 ASP.NET、WPF、WinForms 数据访问评审。
限制:EF6 稳定且受支持,但不在创新路径上,不应向 EF6 代码库承诺 EF Core 特性;EDMX 或复杂映射会显著提高迁移成本。参考资料包括 references/migration.md(决策框架、迁移方法、功能映射与常见陷阱)和 references/patterns.md(仓储与工作单元、查询优化、并发、审计与测试策略)。