小编hal*_*lit的帖子

在枚举参数中使用Dash( - )字符

public enum TimeFormat
{ 
        @12-hour,
        @24-hour
}
Run Code Online (Sandbox Code Playgroud)

嗨,

我使用newtonsoft反序列化器将json字符串反序列化为一个对象.

JsonDeserializer检查枚举参数名称.如果它与json字符串相同.它将字符串转换为枚举.

我可以在枚举中使用Dash,Minus( - )字符作为枚举参数.我尝试使用上面的,但我无法编译项目.

然后我尝试了这个.

[JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))]
public enum TimeFormat
{
    [JsonProperty("12-hour")]
    hour12,
    [JsonProperty("24-hour")]
    hour24,

}
Run Code Online (Sandbox Code Playgroud)

反序列化器无法反序列化json字符串.

错误:请求值'12 -hour'不是foun

c# serialization json json.net deserialization

13
推荐指数
1
解决办法
2098
查看次数

合并与选择比插入更新性能比较

哪个查询提高了性能Query1或Query2,

Query1使用merge语句,Query2使用标准选择而不是插入更新.

我无法决定,因为Merge语句使用两侧比较,第1侧:表1> TAble1_Temp第2面:Table1_Tempt> Table1

标准选择比较数据单边Table1_Temp> Table1,(是否存在)

谢谢你的支持.

查询1

MERGE Table1 AS T
USING Table1_Temp AS S
ON (T.col1= S.col1 and T.col2= S.col2) 
WHEN NOT MATCHED BY TARGET
    THEN INSERT(col1, col2,col3,col4,col5,col6,col7,col8,col9,col10,col11) VALUES(S.col1, S.col2,S.col3,S.col4,S.col5,S.col6,S.col7,S.col8,S.col9,S.col10,S.col11)
WHEN MATCHED 
    THEN UPDATE SET T.col3= S.col3,T.col4 = S.col4,T.col5=S.col5,T.col6=S.col6,T.col7=S.col7 ,T.col8= S.col8,T.col9= S.col9,T.col10= S.col10,T.col11= S.col11
    ;
Run Code Online (Sandbox Code Playgroud)

QUERY2

UPDATE
    Table1
SET

    col3 = Table1_Temp.col3,  
    col4 = Table1_Temp.col4,  
    col5 = Table1_Temp.col5,  
    col6 = Table1_Temp.col6,  
    col7 = Table1_Temp.col7,  
    col8 = Table1_Temp.col8,  
    col9 = Table1_Temp.col9,  
    col10 = Table1_Temp.col10,  
    col11 = Table1_Temp.col11,  

FROM …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server performance

6
推荐指数
1
解决办法
5722
查看次数