Как я могу удалить отношение «многие ко многим» между двумя динамическими объектами? - PullRequest
1 голос
/ 30 августа 2011

Я хочу удалить отношение «многие ко многим» между двумя динамическими объектами.

Я видел примеры использования фиктивных объектов, но они не были динамическими. Я не буду знать объект или имя свойств навигации коллекции объектов до времени выполнения. Так что я не могу просто сказать,

apple.Oranges.Remove(orange)

Мне нужно сделать это динамически. Что-то вроде

dynamicModel.dynamicCollection(collectionName).Remove(otherDynamicModel)

Мне не нужны методы расширения, просто что-то, что делает работу. Как я могу это сделать? Спасибо.

(я не знаю, какие еще детали могут быть полезны, поскольку объекты динамические?)

1 Ответ

1 голос
/ 30 августа 2011

Я думаю, вам лучше использовать отражение в этом случае:

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

Или, если вы знаете, это будет IList

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