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"
我有以下由 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"