c# - like 运算符给出零结果

标签 c# asp.net-mvc linq

我在 ASP MVC 中创建了一个 actionresult,它应该显示与我的 Linq 查询匹配的记录。在我添加之前它一直工作正常:

records.State == '0' &&

此查询(在 t-sql 中)在 SQL Management Studio 中返回正确的结果,但在 Linq 中却没有:

   public ActionResult Index(string q)
    { 
               viewModel.Records = from records in db.records
                                   where records.State == '0' &&
                                   records.Title.Contains(q)
                                   || records.Title.Contains(q)
                                   ||records.Project.Contains(q)
                                   || records.Owner.Contains(q)
                                   || records.Number.Contains(q)
                                   select events;
    }

最佳答案

注意你如何表达你的逻辑。如果你想要的是

records.State == '0' && [whatever previous logic you have]

你应该把你之前所有的逻辑放在括号里:

viewModel.Records = from records in db.records
                   where records.State == '0' &&
                   (records.Title.Contains(q)
                   || records.Project.Contains(q)
                   || records.Owner.Contains(q)
                   || records.Number.Contains(q))
                   select events;

另外,请注意您有重复的条件 records.Title.Contains(q),我在我的解决方案中将其删除。

此外,如果你的records.State是数字类型(比如int,而不是char/string),那么你不应该使用撇号,但应直接使用数字:

viewModel.Records = from records in db.records
                   where records.State == 0 &&
                   (records.Title.Contains(q)
                   || records.Project.Contains(q)
                   || records.Owner.Contains(q)
                   || records.Number.Contains(q))
                   select events;

关于c# - like 运算符给出零结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36575520/

相关文章:

javascript - 在javascript中从Kendo Window刷新将参数传递给Controller Action

c# - 如何将 C# Linq 转换为 Vb.net

C# LINQ 查询

c# - 命令模式用于返回数据

c# - 接口(interface)的 GetEnumerator 的显式实现导致堆栈溢出

asp.net-mvc - 设置cookie并验证后,User.Identity.IsAuthenticated返回false

javascript - 包含外部 javascript 的 ASP.NET MVC 4 问题

Python 相当于 LINQ All 函数?

c# - winforms如何在TableLayoutPanel中绘制(fillRectangle)单个单元格?

c# - C++/CLI 比 C# 快吗