关于泛型集合LINQ的查询问题,十万火急!!! IEnumerable <SetMaterialTable> query = prjEntity.MainData.SMTable.Where(u => u.字段 == 筛选值) 代码如上所示,现在我需要用一个字段变量来动态改变筛选字段 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 微软提供了动态查询库的源码:System.Linq.Dynamic,以及使用的示例代码。LZ下载下来看看。 但是你得保证这个变量是你prjEntity.MainData.SMTable数据集中存在的IQeryable<SetMaterialTable> SetMaterials=prjEntity.MainData.SMTable;ParameterExpression param = Expression.Parameter(typeof(SetMaterialTable), "u");//u.传进来的字段=="值"Expression left = Expression.Property(param, typeof(SetMaterialTable).GetProperty("传进来的字段"));Expression right = Expression.Constant("值");Expression filter = Expression.Equal(left, right);Expression filter = Expression.Equal(left, right);Expression pred = Expression.Lambda(filter, param);//where<u=>u.传进来的字段=="值"Expression expr = Expression.Call(typeof(Queryable), "Where", new Type[] { typeof(SetMaterialTable) }, Expression.Constant(SetMaterials), pred);//生成动态查询IQueryable<SetMaterialTable> query = prjEntity.MainData.SMTable.AsQueryable() .Provider.CreateQuery<SetMaterialTable>(expr);你试试 //word为要查询的字段 private IEnumerable <SetMaterialTable> GetValues(string word, string value) { string str = "select * from SMTable where " + word + "='" + value + "'"; var query = prjEntity.MainData.ExecuteQuery<SetMaterialTable>(str, ""); return query; } 表名SMTable也可以作为参数传进去,然后加到查询字符串里就可以了 动态添加的用户控件怎么给里面的控件验证 如何将文件夹显示在ListView上,双击并能在ListView进入文件夹 C#的日期显示问题 C#获取Excel的DataTable,以下情况,取不到值! 如图 如何在UDP接收线程中跨多个类访问窗体控件,并且还是子窗体的控件 [dojo]有没有人用过dojo, dojo.connect失败 求C#编写的俄罗斯方快代码 如何在两个DataGridView相应的两个单元格之间画条线 VS2005打印(急!!!!) 4個100分貼,解決了這個問題,我會愛死恩. 验证控件的小问题
LZ下载下来看看。
IQeryable<SetMaterialTable> SetMaterials=prjEntity.MainData.SMTable;ParameterExpression param = Expression.Parameter(typeof(SetMaterialTable), "u");//u.传进来的字段=="值"
Expression left = Expression.Property(param,
typeof(SetMaterialTable).GetProperty("传进来的字段"));
Expression right = Expression.Constant("值");
Expression filter = Expression.Equal(left, right);Expression filter = Expression.Equal(left, right);Expression pred = Expression.Lambda(filter, param);//where<u=>u.传进来的字段=="值"
Expression expr = Expression.Call(typeof(Queryable), "Where",
new Type[] { typeof(SetMaterialTable) },
Expression.Constant(SetMaterials), pred);//生成动态查询
IQueryable<SetMaterialTable> query = prjEntity.MainData.SMTable.AsQueryable()
.Provider.CreateQuery<SetMaterialTable>(expr);
你试试
//word为要查询的字段
private IEnumerable <SetMaterialTable> GetValues(string word, string value)
{
string str = "select * from SMTable where " + word + "='" + value + "'";
var query = prjEntity.MainData.ExecuteQuery<SetMaterialTable>(str, "");
return query;
}