我在编写SQL查询时的代码中有类似的东西
if (query.BlackWhiteListFieldMatchProxy[i].MatchValue2Or != null)
parameters.Add($"@matchValue2Or{i}", query.BlackWhiteListFieldMatchProxy[i].MatchValue2Or);
else
parameters.Add($"@matchValue2Or{i}", DBNull.Value);
我希望它像
parameters.Add($"@matchValue2Or{i}", query.BlackWhiteListFieldMatchProxy[i].MatchValue2Or ?? DBNull.Value);
编译器不允许我运行它。我尝试转换为对象DBNull.Value - 我最终得到了运行时异常,在投射其他的时也是如此
答案 0 :(得分:1)
类型必须相同,但它们可以是object
,因此您可以将值转换为object
parameters.Add($"@matchValue2Or{i}", query.BlackWhiteListFieldMatchProxy[i].MatchValue2Or as object ?? DBNull.Value);