簡體   English   中英

如何合並兩個表達式樹體?

[英]How do I combine two expression tree bodies?

如果我有:

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)
);

我的需要是一個通用的解決方案,因此我需要使用反射檢查我的實體類型的各種一對一,一對多和多對多關系,並將它們轉換為表達式樹。

任何對我的具體問題的幫助或一般幫助將不勝感激。

GraphDiff的develop分支為基於屬性的映射提供支持。 無需提供映射樹的表達式樹,而是向模型類中的導航屬性添加自定義屬性( OwnedAssociated ),然后GraphDiff為您創建映射。 看一下GraphDiffs測試模型中的一些示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM