wal*_*low 5 c# linq system.reflection
我正在使用linq从数据库中进行一些搜索.我有多个列名,如国家/地区,姓名,电话号码......
现在我创建了一个下拉列表,并将用户选择的数据作为参数"searchingField"传递给我的控制器方法.现在如果我接受"国家"的输入,我希望代码是
entries = entries.Where(s => s.country.Contains(searchString));
Run Code Online (Sandbox Code Playgroud)
如果用户选择"名称"
entries = entries.Where(s => s.name.Contains(searchString));
Run Code Online (Sandbox Code Playgroud)
请原谅我这个相当不合理的例子,因为我总是可以复制线条并制作案例,但我想知道是否有办法利用反射之类的东西将字符串转换为"代码"以访问字段?
String searchedField = "name"
...
entries = entries.Where(s => s.searchedField.Contains(searchString));
Run Code Online (Sandbox Code Playgroud)
这是我的第一个问题,谢谢!
您可以使用动态 Linq。
entries = entries
.Where(
string.Format(
"{0} = '{1}'",
searchedField,
searchString
)
);
Run Code Online (Sandbox Code Playgroud)
注意:根据字段的类型,您是否需要添加引号。
归档时间: |
|
查看次数: |
769 次 |
最近记录: |