私のデータセット(XMLとして永続化されています)にはID
,Name
、ParentId
という3つの列を持つArea
テーブルがあります。 ParentId
は、ID
を参照する外部キーであり、効果的に領域の階層を作成します。DataColumnの再帰式の代替
私は、その値が、私は計算列として、このコラムを実装したかった
{ area.Name ; if ParentId is null
area.Path := {
{ Parent.Path + "\" + area.Name ; otherwise
として再帰的に定義することができますPath
と呼ばれる新しい列、各エリアのフルパスを維持したいです。 残念ながら、私は次のエラーを取得する次の式
iif(isnull(ParentId, 0) = 0, Name, Parent.Path + '\' + Name)
にExpression
プロパティを設定しようとすると:
Cannot set Expression property due to circular reference in the expression.
これは、計算列を除外するようです。代替案は何ですか?私。 Path
列に、データバインドUIで使用できる正しい値が常に含まれていることを確認するにはどうすればよいですか?
を有しますデータセットがXMLから読み込まれるとき、行は必ずしもトポロジカルな順番(子の前の親)で読み込まれるのではなく、すべての行がテーブルにロードされてから制約が有効にされ、チェックされるからです。 –
したがって、負荷の一部としての後処理が必要になります(?) –