1

我想刪除兩個動態實體之間的多對多關係。如何刪除兩個動態對象之間的多對多關係?

我見過使用虛擬對象的例子,但它們不是動態的。在運行時,我不會知道對象或對象集合導航屬性的名稱。所以我不能說,

apple.Oranges.Remove(orange) 

我需要動態地做它。類似的,

dynamicModel.dynamicCollection(collectionName).Remove(otherDynamicModel) 

我不需要擴展方法,只需要一些能夠完成工作的東西。我怎樣才能做到這一點?謝謝。

(我不知道還有什麼其他細節可能會有所幫助,因爲提供的對象是動態的?)

回答

1

我想你最好在這種情況下使用反射依然:

((dynamic)dynamicModel.GetType().GetProperty(collectionName) 
    .GetValue(dynamicModel, null)) 
     .Remove(otherDynamicModel) 

或者如果你知道這將是一個IList

((IList)dynamicModel.GetType().GetProperty(collectionName) 
    .GetValue(dynamicModel, null)) 
     .Remove(otherDynamicModel) 
+0

謝謝你,這就是我一直在尋找。 – Benjamin

相關問題