Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc MVC控制器中的LINQ语句出错_Asp.net Mvc_Asp.net Mvc 3 - Fatal编程技术网

Asp.net mvc MVC控制器中的LINQ语句出错

Asp.net mvc MVC控制器中的LINQ语句出错,asp.net-mvc,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 3,我正在开发MVC应用程序 我试图在控制器中编写LINQ语句,但它给出了一个错误 ViewBag.CompanyIdList = new SelectList(db.Companies.OrderBy(t => t.Name).Where(t=>t.IsDeleted!=true || t=>t.IsTransfer !=true) , "Id", "Name"); 什么问题 问题解决了,多亏了 它说t不存在的问题是由以下原因引起的: .Where(t=>t.IsDel

我正在开发MVC应用程序

我试图在控制器中编写LINQ语句,但它给出了一个错误

 ViewBag.CompanyIdList = new SelectList(db.Companies.OrderBy(t => t.Name).Where(t=>t.IsDeleted!=true || t=>t.IsTransfer !=true) , "Id", "Name");
什么问题

问题解决了,多亏了


它说t不存在的问题是由以下原因引起的:

.Where(t=>t.IsDeleted!=true || t=>t.IsTransfer !=true) 
这应该是:

.Where(t=>t.IsDeleted!=true || t.IsTransfer !=true) 
在表达式中仅使用lambda一次。事实上,您可以将其缩短为:

.Where(t => !t.IsDeleted || !t.IsTransfer) 

错误消息是什么?你为什么要检查
IsDeleted!=对
两次?“它给出了一个错误”没有告诉我们任何事情。错误是什么?我已经更新了查询…显示了许多错误,例如,名称“t”在当前上下文中不存在…无效的表达式项“=>”…无效的表达式项“)”如果我想为同一字段设置三个条件,该怎么办。比如
ViewBag.CompanyIdList=new SelectList(db.companys.OrderBy(t=>t.Name)。其中(t=>t.IsDeleted!=false | | | t.IsDeleted==null | | t=>t.IsTransfer!=true),“Id”,“Name”)这也显示了错误…@user1650894-正如我所说,在表达式中只使用lambda一次。是的,我在where条件中只起诉了一次,但是如果我想使用三个条件呢?上面的语句显示了一个错误。@user1650894-否。。显然你不明白什么是lambda
t=>
是一个lambda。在表达式中只能使用一次。你在表达式中使用了两次。这就是为什么你会出错。请看我第一次为解决您的问题所做的操作,然后再次应用它。否如果我从where条件中删除lambda,则它将开始显示错误->名称“t”在当前上下文中不存在
.Where(t => !t.IsDeleted || !t.IsTransfer)