我对同一查询进行了多次调用,但 WHERE
子句略有不同,有谁知道是否可以传递变量作为列名,因为我似乎无法实现它.
我知道以下内容不正确,但只是为了让您了解我想要实现的目标。
public EmailUserListViewModel EmailUserListData(int CaseId, string ColumnName)
{
CaseId = CaseId,
EmailUserList = (from u in efContext.PgsUsers
where ColumnName == true
orderby u.FirstName, u.LastName
select new EmailUserListModel
{
UserId = u.Id,
Name = ((u.FirstName == null) ? "" : u.FirstName)
+ ((u.LastName == null) ? "" : " " + u.LastName),
Email = u.Email,
Checked = false
}).ToList()
};
}
最佳答案
我想你可以使用反射来动态检索属性的值
from u in efContext.PgsUsers where (typeof(PgsUser).GetProperty(ColumnName).GetValue(u) as bool) == true
或
from u in efContext.PgsUsers where (u.GetType().GetProperty(ColumnName).GetValue(u) as bool) == true
关于c# - MVC Linq 查询在 WHERE 子句中使用动态列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41742052/