0
在我的DataSet(其持久化爲XML)中,我有一個包含三列的Area
表:ID
,Name
和ParentId
。 ParentId
是一個外鍵,返回ID
,有效地創建區域層次結構。DataColumn中的遞歸表達式的替代方法
我要保持在一個名爲Path
新列,其值可以遞歸定義爲
{ area.Name ; if ParentId is null
area.Path := {
{ Parent.Path + "\" + area.Name ; otherwise
我本來希望實現此列計算列各區域的完整路徑。 不幸的是,當我嘗試了Expression
屬性設置爲以下表達式
iif(isnull(ParentId, 0) = 0, Name, Parent.Path + '\' + Name)
我得到以下錯誤:
Cannot set Expression property due to circular reference in the expression.
這似乎排除計算列。那麼有什麼選擇?即我如何確保Path
列始終包含可在數據綁定的UI中使用的正確值?
這種循序漸進的方法是行不通的閉合路徑當從XML讀取DataSet時,由於行不一定按照拓撲順序(子節點之前的父節點)加載,而是將所有行加載到表中,然後啓用和檢查約束。 –
因此需要一些後處理作爲負載的一部分(?) –