c# - Entity Framework 使用空变量进行多重搜索?

标签 c# asp.net-mvc entity-framework

我想搜索多个并获得结果。我发送这个函数 devicename user alarm。当这些变量被填充时,它就起作用了。但是当它们为空时,它就不是了。我只能填写 devicename 变量。例如;

devicename = "test"; 
alarm=""; 
user="";

有时候可以填devicename user,有时候可以填devicename alarm..我不行从我的代码中获取任何数据。我需要帮助。这是我的代码:

List<ActivityLog> list = db.ActivityLog.Where(c => c.Devices.devName.ToLower().Contains(devicename.ToLower()))
                                       .Where(c => c.Users.uName.ToLower().Contains(user.ToLower()))
                                       .Where(c => c.AlarmCodes.aName.ToLower().Contains(alarm.ToLower()))
                                       .OrderBy(c => c.dateTime).Skip(skip).Take(pageSize).ToList();

最佳答案

        List<ActivityLog> list = db.ActivityLog.Where(c => devicename == "" || c.Devices.devName.ToLower().Contains(devicename.ToLower()))
                                               .Where(c => user == "" || c.Users.uName.ToLower().Contains(user.ToLower()))
                                               .Where(c => alarm == "" || c.AlarmCodes.aName.ToLower().Contains(alarm.ToLower()))
                                               .OrderBy(c => c.dateTime).Skip(skip).Take(pageSize).ToList();

正如 Mihai 建议的那样,您可以组合所有 where 语句。

关于c# - Entity Framework 使用空变量进行多重搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21828783/

相关文章:

c# - 将值从数据库映射到 View 模型

asp.net-mvc - 在我的 Razor View 中奇怪的自动命名空间导入

c# - 使用 Entity Framework 模型键入安全 key

c# - 如果我将 virtual 关键字添加到属性,我需要帮助解决为什么 Entity Framework 不会保存

c# - 下拉列表数据源并从 C# 添加额外项目

c# - 内部声明变量的 T-SQL 参数化查询?

c# - 从 C# 将参数传递到批处理文件

c# - 如何使用具有可变持续时间值的 [OutputCache (Duration=2000)] 并重置服务器缓存

带空检查的 C# out 参数

c# - 在 PartialView 中获取变量