将子实体添加到父实体集

时间:2010-01-15 18:43:04

标签: linq-to-sql

想知道是否有一种好方法(通用方法)可以动态地将子实体添加到父级的适当实体集中。现在我必须做这样的事情,并不是很优雅:

 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 :(得分:0)

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);
    }