用途:在 .NET Framework 或现代 .NET 上的 EF6 代码库中工作,判断应保留 EF6、只升级运行时,还是迁移到 EF Core,并规划数据层迁移策略。
主要能力:先审计 EF6 使用情况,盘点 EDMX 设计器模型、ObjectContext 与 DbContext、virtual 导航属性的延迟加载、Database.SqlQuery<T>() 原生 SQL、模型中的存储过程映射、空间类型(DbGeography、DbGeometry)等 EF6 特有模式。将运行时迁移与 ORM 迁移分开决策:无运行时压力的旧应用可保留 EF6 on .NET Framework;需要升级运行时但 ORM 迁移风险过高时,可在现代 .NET 上继续用 EF6;数据层干净、无 EDMX、存储过程映射少时,可考虑 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 特性;EF Core 服务更新本身不构成直接替换,只有在存在有界迁移切片和基于真实数据库的等价性测试时才应迁移。资料未提供具体版本号、价格与平台细节。