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

相关问题