首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >关于IQueryable OfType<>的思考

关于IQueryable OfType<>的思考
EN

Stack Overflow用户
提问于 2015-06-11 08:40:48
回答 1查看 783关注 0票数 2

我的实体框架上下文中有一个员工DbSet,可以将其查询为:

代码语言:javascript
代码运行次数:0
运行
复制
IQueryable employees = _context.Employees;

其思想是使用反射执行以下方法:

代码语言:javascript
代码运行次数:0
运行
复制
var result= _context.Employees.OfType<PaidEmployee>()

我已经扩展了Employee对象以创建一个PaidEmployee类。我想使用反射查询PaidEmployee的上下文。

代码语言:javascript
代码运行次数:0
运行
复制
Assembly asm = Assembly.LoadFrom("MyModel.dll");
Type t = asm.GetType("PaidEmployee");

var ofType = typeof(Queryable).GetMethod("OfType",
                     BindingFlags.Static | BindingFlags.Public);

var methodinfo = ofType.MakeGenericMethod(t);

var obj = methodinfo.Invoke(employees , null);

当我执行上述代码时,它会给出错误:

System.Reflection.TargetParameterCountException未被用户代码HResult=-2147352562 Message=Parameter计数不匹配处理。 在System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj,BindingFlags invokeAttr,binder胶凝剂,Object[]参数,CultureInfo文化)在System.Reflection.RuntimeMethodInfo.Invoke(Object obj,BindingFlags invokeAttr,binder粘合剂,Object[]参数,CultureInfo文化) at System.Reflection.MethodBase.Invoke(Object obj,Object[]参数) at Tests.test_dynamic.TestMethod2(),e:\Projects\Tests\test_dynamic.cs:line 54 InnerException:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-11 08:46:12

试一试

代码语言:javascript
代码运行次数:0
运行
复制
var obj = methodinfo.Invoke(null, new[] { employees });

OfType是静态的,所以null obj ( Invoke的第一个参数,即要用于该方法的对象的实例)!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30775756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档