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

mjr*_*odt 0 c# reflection entity-framework

我试图从实体框架对象中的多个属性获取值.共有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);                                        
           }
     }
Run Code Online (Sandbox Code Playgroud)

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

Nic*_*ler 5

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

PropertyInfo[] properties = typeof( FlexPeriod ).GetProperties( ...
Run Code Online (Sandbox Code Playgroud)

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