【问题标题】:How can I delete the many-to-many relationship between two dynamic objects?如何删除两个动态对象之间的多对多关系?
【发布时间】:2011-08-31 00:36:50
【问题描述】:

我想删除两个动态实体之间的多对多关系。

我见过使用虚拟对象的示例,但它们不是动态的。直到运行时,我才会知道对象或对象集合导航属性的名称。所以我不能说,

apple.Oranges.Remove(orange)

我需要动态进行。类似的,

dynamicModel.dynamicCollection(collectionName).Remove(otherDynamicModel)

我不一定需要扩展方法,只需要完成工作的东西。我怎样才能做到这一点?谢谢。

(由于对象是动态的,我不知道提供哪些其他细节可能会有所帮助?)

【问题讨论】:

    标签: c#-4.0 entity-framework-4 many-to-many entity-framework-4.1 system.reflection


    【解决方案1】:

    我认为在这种情况下你最好还是使用反射:

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

    或者如果你知道它会是IList

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

    【讨论】:

    • 谢谢,这正是我要找的。​​span>
    猜你喜欢
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    • 1970-01-01
    • 2021-08-26
    • 2019-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多