Добавление дочерней сущности в родительский набор сущностей - PullRequest
0 голосов
/ 15 января 2010

Интересно, есть ли хороший способ (универсальный метод), который может динамически добавлять дочернюю сущность в соответствующий набор сущности родителя. Прямо сейчас я должен сделать что-то вроде этого, и это не очень элегантно:

 public int AppendChild<T>(PATIENT patient, T child)
    where T : EntityBase

  switch (typeof(T).Name)
  {               
     case "EYE_EXAM":
          patient.EYE_EXAMS.Add((EYE_EXAM)child);
          break;

     case "LEGS_EXAM":
          patient.LEGS_EXAMS.Add(LEGS_EXAM)child);
          break;

     //etc, a very long list of possible types goes here

  }

Есть ли лучший способ сделать это? Спасибо за ответы

1 Ответ

0 голосов
/ 24 ноября 2010
public void CreateChildIfNull<T>()
{
    var child = Activator.CreateInstance(typeof(T));
    Entity.GetType().GetProperty(typeof(T).Name).SetValue(patient, child , null);
}

или

    public void CreateChildIfNull(LambdaExpression Child)
    {
        Type ChildType = Child.Body.Type;
        var myvar = Activator.CreateInstance(ChildType);
        Entity.GetType().GetProperty(ChildType.Name).SetValue(Entity, myvar, null);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...