我想用paremeter更改where子句。示例中我有2个字符串变量。Lambda表达式if-else语句在where子句中
string searchText="John";
string userField="Name"//it can be ID,UserName or Email
我想改变用户属性(a.Name)根据 “字符串userField =” 名称 “/”
var a entities.Users
where a.Name==searchText //a.Name(Name) is declared in userField. It can be ID,UserName or Email
我的代码如下所示:
var users = new
{
total = 10,
page = page,
record = (entities.Users.Count()),
rows = (from user in entities.Users
select new
{
ID = user.ID,
Name = user.Name,
UserName = user.UserName,
UserType = user.Role.Name,
Email = user.Email,
CreatedDate = user.CreatedDate,
UpdatedDate = user.UpdatedDate
}).AsEnumerable().Select(m => new { ID = m.ID, Name = m.Name, UserName = m.UserName, Email = m.Email, UserType = m.UserType, CreatedDate = String.Format("{0:d/M/yyyy HH:mm:ss}", m.CreatedDate), UpdatedDate = String.Format("{0:d/M/yyyy HH:mm:ss}", m.UpdatedDate) }),
};
如何我可以用这个拉姆达表达来做到吗?
所以这里的挑战是真的,你有一个包含“名称”的字符串,你要,要了链接的属性在被查询的对象上有相同的名字? – Tormod
不清楚你在问什么。你想按条件筛选查询吗? –
谢谢你的回答。我想根据“字符串userField =”名称“/”更改用户属性。问题已更新。 – fuat