首页 新闻 会员 周边 捐助

EF Core ExecuteSql 报错 "cannot convert from 'string' to 'System.FormattableString'"

0
悬赏园豆:30 [已解决问题] 解决于 2025-05-14 09:47

下面的代码通过 EF Core 的 Database.ExecuteSql 方法执行 SQL 语句

var sql = """
    IF NOT EXISTS(SELECT * FROM sys.synonyms WHERE name = 'blog_PostCategoryMap')
    BEGIN
        CREATE SYNONYM [dbo].[blog_PostCategoryMap] FOR [blog_Links]
    END
    """;

db.Database.ExecuteSql(sql);

出现编译错误

Argument 2: cannot convert from 'string' to 'System.FormattableString'
dudu的主页 dudu | 高人七级 | 园豆:24807
提问于:2025-05-14 08:43
< >
分享
最佳答案
0

通过 FormattableStringFactory.Create 解决了

using System.Runtime.CompilerServices;

private static void AddSynonyms(BlogDbContext db)
{
    // ...
    db.Database.ExecuteSql(FormattableStringFactory.Create(sql));
}

方法来自 https://stackoverflow.com/a/75703611

dudu | 高人七级 |园豆:24807 | 2025-05-14 09:47
其他回答(1)
0

var sql = $"SQL STRING";

收获园豆:30
talentzemin | 园豆:862 (小虾三级) | 2025-05-14 08:56

还是同样的问题

支持(0) 反对(0) dudu | 园豆:24807 (高人七级) | 2025-05-14 09:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册