我想在动态linq查询中使用contains()来获取任何值。我只能为字符串类型这样做。这是代码:
var TableName = cboSelectTable.Text.ToString();
var columnName = cboCrudSearchColumn.Text.ToString();
string searchValue = txtCrudSearch.Text.ToString().ToUpper();
var truncatedData = new object();
//cadContext is an EDM.
var rawData = cadContext.GetType().GetProperty(TableName).GetValue(cadContext, null);
truncatedData = ((IQueryable<object>)rawData).Where(columnName +".Contains(@0)", searchValue ).ToList();
dgvLoadTable.DataSource = truncatedData;
如何将此代码用于数字和日期时间值?对于数字,我试过这个:
int x = Int32.Parse(txtCrudSearch.Text);
truncatedData = ((IQueryable<object>)rawData).Where(columnName + ".Contains(@0)", x).ToList();
它说:'Decimal'类型中没有适用的方法'Contains'。此外,我无法弄清楚如何处理datetime值。任何帮助表示赞赏。