Database Azure表存储基于属性的记录查询,该属性可能不存在于所有记录中

Database Azure表存储基于属性的记录查询,该属性可能不存在于所有记录中,database,azure,azure-storage,Database,Azure,Azure Storage,我正在为我的服务使用Azure表存储,我正在尝试向其引入软删除功能。我将向标记为删除的条目添加一个属性IsMarkedForDeletion。查询时,我只需要未标记为删除的条目。在未删除的字段中,IsMarkedForDeletion甚至不存在 我尝试了以下方法: <...query...> and (IsMarkedForDeletion ne true) <...query...> and (IsMarkedForDeletion eq false) <...q

我正在为我的服务使用Azure表存储,我正在尝试向其引入软删除功能。我将向标记为删除的条目添加一个属性
IsMarkedForDeletion
。查询时,我只需要未标记为删除的条目。在未删除的字段中,
IsMarkedForDeletion
甚至不存在

我尝试了以下方法:

<...query...> and (IsMarkedForDeletion ne true)
<...query...> and (IsMarkedForDeletion eq false)
<...query...> and (not (IsMarkedForDeletion ne false))
<...query...> and (not (IsMarkedForDeletion eq true))

<...query...> and (not (IsMarkedForDeletion eq NULL)) => returns 501 Not Implemented
和(IsMarkedForDeletion ne true)
和(IsMarkedForDeletion eq false)
和(不是(IsMarkedForDeletion ne false))
和(不是(IsMarkedForDeletion eq true))
and(not(IsMarkedForDeletion eq NULL))=>返回501未实现
没有一个显示的条目中没有
IsMarkedForDeletion
属性

我该怎么做才能获得不具有
IsMarkedForDeletion
的记录,以及
IsMarkedForDeletion
属性存在但为false的记录


我曾考虑过清理数据库,将IsMarkedForDeletion添加到所有记录中,或者在执行查询后自己过滤结果,但我希望在查询本身中这样做,以便在创建分段请求和分页结果时对我来说很容易。

我认为这是不可能的,您可以尝试检查字段是否等于null,我不知道这是否能解决您的问题。但通常情况下,表存储没有模式,并且不打算用于查询除分区键和行键之外的字段。我个人认为,通过获取给定PK+RK的所有结果并在稍后将其过滤掉,比让表存储在PK+RK对之外的字段上进行过滤更快地得到结果。

是的,我尝试了null-但这没有帮助。Null仍然是一个有效字段,它检查属性是否存在。那么我认为不可能在QueryLek中检查列是否存在。如果正确,请在客户端进行筛选。