首页 > 解决方案 > SQLKata 更新查询,包括 FromRaw 语句

问题描述

我正在尝试在 SQLKata 中创建一个包含“FromRaw”语句的更新查询。以下是我尝试完成的最佳尝试的副本。我必须使用 FromRaw 语句,因为我在评估中链接了 2 个表。有什么方法可以在不必求助于 Statement() 函数的情况下实现这一点?

var query = db.Query(Table1)

                .FromRaw(" Table1 INNER JOIN Table2 " +
                " ON LEFT([Table1].[Company],5) = " +
                " LEFT([Table2].[Company],5)" )

                .Update(new { scrub = "match" });

以下是错误消息的副本: System.InvalidOperationException: 'Invalid table expression'

标签: c#sqlsql-serversqlkata

解决方案


这段代码对我来说很好用:

var compiler = new SqlServerCompiler();
//var Table1 = "Table1";

var query = new Query(null)
        .FromRaw("Table1 INNER JOIN Table2 " +
        "ON LEFT([Table1].[Company],5) = " +
        "LEFT([Table2].[Company],5)")
        .AsUpdate(new { scrub = "match" });

var rawSql = compiler.Compile(query).RawSql;

值为rawSql

UPDATE Table1 INNER JOIN Table2 ON LEFT([Table1].[Company],5) = LEFT([Table2].[Company],5) SET [scrub] = ?

您收到的错误消息仅在 中找到Compiler.cs,这就是为什么我建议您检查您正在使用的编译器的原因。


推荐阅读