我的Entity Framework上下文中有一个Employees DbSet,可以查询为:
echo "before calling";
require_once BASEPATH.'core/CodeIgniter.php';
echo "after calling";
想法是使用Reflection:
执行以下方法IQueryable employees = _context.Employees;
我已经扩展了Employee对象以创建一个PaidEmployee类。 我想使用REFLECTION查询PaidEmployee的上下文。
var result= _context.Employees.OfType<PaidEmployee>()
当我执行上面的代码时,它给出了错误:
System.Reflection.TargetParameterCountException未被用户处理 代码HResult = -2147352562消息=参数计数不匹配 来源= mscorlib程序 堆栈跟踪: 在System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj, BindingFlags invokeAttr,Binder binder,Object []参数, 文化信息文化) 在System.Reflection.RuntimeMethodInfo.Invoke(Object obj,BindingFlags invokeAttr,Binder binder,Object []参数, 文化信息文化) 在System.Reflection.MethodBase.Invoke(Object obj,Object []参数) 在e:\ Projects \ Tests \ test_dynamic.cs中的Tests.test_dynamic.TestMethod2()中:第54行InnerException:
答案 0 :(得分:3)
尝试
var obj = methodinfo.Invoke(null, new[] { employees });
OfType
是静态的,因此null
obj
(Invoke
的第一个参数,即用于该方法的对象的实例)!