【问题标题】:SqlKata Values for AsUpdate as column namesAsUpdate 的 SqlKata 值作为列名
【发布时间】:2020-09-23 12:58:10
【问题描述】:

我有以下由 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();

【问题讨论】:

  • 预期的 SQL 字符串是什么?

标签: postgresql sqlkata


【解决方案1】:

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

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

这将产生以下内容:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-22
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    相关资源
    最近更新 更多