1
如果我有:如何合併兩個表達式樹體?
m => m.OwnedCollection(p => p.Addresses)
和
m => m.OwnedCollection(p => p.Contacts)
我想將它們組合爲:
m => m.OwnedCollection(p => p.Addresses).OwnedCollection(p => p.Contacts)
是否有這樣做的一種方式?
我也希望能夠結合:
m => m.OwnedCollection(p => p.Contacts)
和:
with => with.AssociatedCollection(p => p.AdvertisementOptions)
是:
m => m.OwnedCollection(p => p.Contacts, with => with.AssociatedCollection(p => p.AdvertisementOptions))
是否有這樣做一個作爲的方式好?
我希望這些都是相當簡單的要求,但我發現很難掌握術語。
一些背景資料:
我使用https://github.com/refactorthis/GraphDiff支持實體合併更新。問題在於它期望一個表達樹來描述要更新的實體的關係,例如。
context.UpdateGraph(company, map => map
.OwnedCollection(p => p.Contacts, with => with
.AssociatedCollection(p => p.AdvertisementOptions))
.OwnedCollection(p => p.Addresses)
);
礦需要一個通用的解決方案,所以我需要檢查各種一到一對一,一對多和多對多我的許多實體的關係型;在使用反射,將其換算成表達式樹。
任何幫助我的具體問題或一般的幫助,將不勝感激。
Thanks @andyp。我確實發現了這一點,並將儘快採取行動。與此同時,我使用Mapping的方法創建了一個IMergeable接口,並在該方法中返回該類的表達式。在我的倉庫中,我檢查對象是否是IMergeable,並調用映射方法將其傳遞給graphdiff。 – user2363071 2014-10-27 12:44:58