AsUpdate 的 SqlKata 值作为列名

SqlKata Values for AsUpdate as column names

我有以下由 SqlKata 生成的查询:

UPDATE "temp"."dbe01_measures" SET "category2name" = 'category4name'.

预期的查询是:

UPDATE "temp"."dbe01_measures" SET "category2name" = "category4name"

我想使用 category4name 作为列名,而不是值。

代码是:

var query = new Query(dimensionDataSource.Object)

var valuesToUpdateForQ1 = new Dictionary<string, object>
{
   {toOptionDataSourceMetadata.NameColumn, fromDimension.DimensionDisplayName}
};

query.AsUpdate(new ReadOnlyDictionary<string, object>(valuesToUpdateForQ1));

var sqlQueryString1 = new QueryFactory { Compiler = new PostgresCompiler() }.Compiler.Compile(query1).ToString();

您必须使用 UnsafeLiteral 指示编译器在不进行任何处理的情况下使用该值。

var q = new Query("Table").AsUpdate(new Dictionary<string, object> {
    {"Id", 1},
    {"Value", Expressions.UnsafeLiteral("\"Col\"")}
});

这将产生以下结果:

UPDATE "Table" SET "Id" = 1, "Value" = "Col"