对象与通过EF属性循环的目标类型不匹配

时间:2012-11-19 14:16:45

标签: c# entity-framework reflection

我试图从实体框架对象中的多个属性中获取值。共有11个属性,每个属性都分配了一个日期。我尝试过使用反射,但我一直收到错误“对象与目标类型不匹配”

 public void CheckWeekStatus()
    {
     var currentFlexi = from c in FlexiContext.FlexPeriods where c.FlexiCurrentYear == true select c;

     FlexPeriod s = new  FlexPeriod();

    PropertyInfo[] properties = s.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);

      foreach (var info in properties)
           {                     
             var o = info.GetValue(currentFlexi,null);                                        
           }
     }

FlexPeriod是包含所有属性的类型。我可以遍历属性,但显然我正在尝试访问值的方式有问题。任何建议将不胜感激。

1 个答案:

答案 0 :(得分:5)

首先,您可以在不实例化对象的情况下获取Type

PropertyInfo[] properties = typeof( FlexPeriod ).GetProperties( ...

GetValue失败的原因是currentFlexiFlexPeriod个对象(实际上是IEnumerable<FlexPeriod>)的集合,而不是FlexPeriod的单个实例。