You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ExecuteSql与ExecuteSqlInterpolated的区别及EF Core 7/8选型疑问

ExecuteSql 和 ExecuteSqlInterpolated 的功能对比及使用建议

核心结论

  • 两者功能完全相同,内部实现逻辑一致,都是通过FormattableString实现参数化SQL执行、避免SQL注入,最终返回受影响的行数。
  • EF Core 7及后续版本(包括EF8)建议优先使用ExecuteSql。

细节说明

  1. 命名简化的背景
    EF Core 7推出ExecuteSql是为了统一API命名风格:

    • 旧版的FromSqlInterpolated对应EF7+的FromSql
    • 同理,ExecuteSqlInterpolated对应新的ExecuteSql
      由于接受FormattableString类型参数的方法,本身就具备插值参数化能力,原方法名中的Interpolated属于冗余表述,新命名更简洁直观。
  2. 兼容性与演进趋势
    目前ExecuteSqlInterpolated并未被标记为过时,在EF7/8中仍可正常使用,但官方后续会主推更简洁的ExecuteSql,从API演进的角度看,优先使用新方法更符合未来的版本趋势。

方法定义对比

// EF Core 3.0+ 引入的旧方法
public static int ExecuteSqlInterpolated (this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, FormattableString sql);

// EF Core 7.0+ 引入的新方法
public static int ExecuteSql (this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, FormattableString sql);

内容的提问来源于stack exchange,提问作者Julian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 22:08:10