0

尝试对表进行反射调用并调用 where 方法。在 MVC (2) 中使用,

实体框架中的数据。可以对当前试图获取数据的两个表进行硬编码。

如何调用 where 方法的麻烦。

并且很惊讶我还没有找到答案?因此,如果已经回答,并且 iv 没有搜索到正确的内容,我相信你会告诉我的。

有以下

string search_table

PropertyInfo prop = database.GetType().GetProperty(search_table);
object table = prop.GetValue(WRG,null);
var methods = table.GetType().GetMethods();

var where_method = table.GetType().GetMethod("Where");
var result_data = where_method.Invoke(table, new object[]{"table", "table.-FIELD-NAME.Contains(search_string)"});

如果不使用反射,那么我会用 var result_data = database.-TABEL-.Where(t => t.-FIELD.Contains(search_string)); 调用 where 方法

所以已经尝试将该信息复制到调用中,没有。

调用要求的地方:(object obj,object []参数)

谢谢有人指出我正确的方向。

4

1 回答 1

0

Where是一个扩展方法,通常定义在System.Linq.QueryableSystem.Linq.Enumerable类中,取决于对象是否实现IQueryable

Enumerable版本需要一个Func<T, bool>参数。该Queryable版本需要一个Expression<Func<T, bool>>参数。两个版本都不接受参数的字符串表示形式。如果您需要将参数作为字符串传递,则需要查看LINQ Dynamic Query library

于 2012-11-30T18:54:59.993 回答