用途:在编写数据访问代码前,为 .NET 应用在 Entity Framework Core、Dapper 和原生 ADO.NET 之间做出技术选型,提供决策矩阵与取舍分析。
主要能力:给出三者的学习曲线、生产力、查询性能、启动时间、内存分配、AOT/裁剪兼容性、变更跟踪、迁移、LINQ 支持、批量操作与复杂映射对比;说明各自适用场景;提供相对性能对比(以 ADO.NET 为基准的粗略倍数);说明 AOT 与裁剪兼容性(EF Core 部分支持,需编译模型 dotnet ef dbcontext optimize;Dapper 标准版不安全,Dapper.AOT 安全;ADO.NET 完全支持);介绍混合方案(EF Core 负责命令、Dapper 负责复杂查询,通过 DbContext.Database.GetDbConnection() 共享连接与事务);给出从 ADO.NET 到 Dapper、Dapper 到 EF Core、EF Core 到 Dapper 的迁移路径;列出相关 NuGet 包与关键原则。
使用方式:作为技能在选型阶段调用,按决策矩阵与场景建议选择方案;涉及 AOT 时参考对应建议。
适用场景:新建 .NET 项目的数据访问选型、性能敏感路径优化、AOT 发布需求、库开发、混合架构设计。
限制:不涵盖 EF Core 战术用法、战略架构、DI 机制、异步模式与数据访问层测试,这些由其他技能处理。性能数字为粗略相对比较,实际取决于查询复杂度、数据库、网络延迟与硬件;EF Core 的 AOT 支持随版本变化,需查阅目标版本限制。