我们有一个存储表,我们想在其中添加一个新的整数列(它实际上是一个转换为 int 的 3 个值的枚举)。我们希望在以下情况下需要一行:
- 这是一个较旧的行,该列不存在
- 这是一个新行,该列存在并且与特定值不匹配
当我只在列上使用不等于运算符时,不会返回旧行。如何处理?
更新
假设比较总是为不存在的列返回 false,我在下面尝试了类似的操作(属性的值在存在时将始终 > 0),这也不起作用:
如果 (
Prop GreaterThanOrEqual -1
) 条件返回false
,我假设该值为空。如果不是,则进行实际比较。
string propNullCondition = TableQuery.GenerateFilterConditionForInt(
"Prop",
QueryComparisons.GreaterThanOrEqual,
-1);
propNullCondition = $"{TableOperators.Not}({propNullCondition})";
string propNotEqualValueCondition = TableQuery.CombineFilters(
propNullCondition,
TableOperators.Or,
TableQuery.GenerateFilterConditionForInt(
"Prop",
QueryComparisons.NotEqual,
XXXX));
注意:到目前为止写的表格行没有“Prop”,只有新行会有这个列。并且期望只有当 Prop != XXXX 时查询才应该返回所有旧行和新行。