Asp.net Contains随Linq To Sql返回空异常

Asp.net Contains随Linq To Sql返回空异常,asp.net,asp.net-mvc,linq-to-sql,Asp.net,Asp.net Mvc,Linq To Sql,我的Linq到Sql查询 PROJETS = PROJETS.Where(p => (p.VilleArrive != "" && p.VilleArrive != null) && p.VilleArrive.Contains(alerte.VilleArrive)); 翻译成这样 SELECT * // (many columns) FROM [dbo].[cov_Projet] AS [t0] WHERE ([t0].[VilleArrive] &

我的Linq到Sql查询

PROJETS = PROJETS.Where(p => (p.VilleArrive != "" && p.VilleArrive != null) &&  p.VilleArrive.Contains(alerte.VilleArrive));
翻译成这样

SELECT * // (many columns)
FROM [dbo].[cov_Projet] AS [t0]
WHERE ([t0].[VilleArrive] <> @p0)     // city != ""
AND ([t0].[VilleArrive] IS NOT NULL)  // city != null
AND ([t0].[VilleArrive] LIKE @p1)     // city.contains(alert.city)
ORDER BY [t0].[DateDebut]
SELECT*//(多列)
来自[dbo]。[cov_项目]作为[t0]
何处([t0].[Villarrive]@p0)//城市!=""
并且([t0].[Villarrive]不为空)//城市!=无效的
和([t0].[Villarrive]类似@p1)//city.contains(alert.city)
[t0]【首次登场日期】下的订单
当我在SQLServer中手动运行它时,它执行得很好。但当linq执行时,它返回ArgumentNullException异常。 实际上,被测试的列“villerarive”(“city”)从来都不是null,而是一个空字符串

我真的不明白它为什么会附加。 我的问题看起来像这个 但答案对我来说并不适用

“LIKE”关键字似乎调用了Linq.SqlClient.SqlHelpers.getStringContainesPattern(字符串文本,字符转义)

谢谢你的帮助,对不起我的英语

这里的堆栈跟踪我的项目是一个ASP MVC 1.0项目

System.ArgumentNullException为 未由用户代码Message=“La”处理 valeur ne peut pasêtre null。\r\n正常 du paramètre:文本“
Source=“System.Data.Linq”
ParamName=“text”堆栈跟踪: §System.Data.Linq.SqlClient.SqlHelpers.GetStringContainesPattern(字符串 文本(字符转义) §System.Data.Linq.SqlClient.PostBindDotNetConverter.Visitor.TranslateStringMethod(SqlMethodCall (mc) §System.Data.Linq.SqlClient.PostBindDotNetConverter.Visitor.VisitMethodCall(SqlMethodCall (mc) §System.Data.Linq.SqlClient.SqlVisitor.Visit(SqlNode 节点) §System.Data.Linq.SqlClient.SqlVisitor.VisitePression(SqlExpression 经验值) §System.Data.Linq.SqlClient.SqlVisitor.VisitBinaryOperator(SqlBinary (博) §System.Data.Linq.SqlClient.PostBindDotNetConverter.Visitor.VisitBinaryOperator(SqlBinary (博) §System.Data.Linq.SqlClient.SqlVisitor.Visit(SqlNode 节点) §System.Data.Linq.SqlClient.SqlVisitor.VisitePression(SqlExpression 经验值) §System.Data.Linq.SqlClient.SqlVisitor.VisitSelectCore(SqlSelect 选择) §System.Data.Linq.SqlClient.PostBindDotNetConverter.Visitor.VisitSelect(SqlSelect 选择) §System.Data.Linq.SqlClient.SqlVisitor.Visit(SqlNode 节点) §System.Data.Linq.SqlClient.SqlVisitor.VisitAlias(SqlAlias (a) §System.Data.Linq.SqlClient.SqlVisitor.Visit(SqlNode 节点) §System.Data.Linq.SqlClient.SqlVisitor.VisitSource(SqlSource (来源) §System.Data.Linq.SqlClient.SqlVisitor.VisitSelectCore(SqlSelect 选择) §System.Data.Linq.SqlClient.PostBindDotNetConverter.Visitor.VisitSelect(SqlSelect 选择) §System.Data.Linq.SqlClient.SqlVisitor.Visit(SqlNode 节点) §System.Data.Linq.SqlClient.SqlVisitor.Visition(SqlUnion (苏) §System.Data.Linq.SqlClient.SqlVisitor.Visit(SqlNode 节点) §System.Data.Linq.SqlClient.SqlVisitor.VisitAlias(SqlAlias (a) §System.Data.Linq.SqlClient.SqlVisitor.Visit(SqlNode 节点) §System.Data.Linq.SqlClient.SqlVisitor.VisitSource(SqlSource (来源) §System.Data.Linq.SqlClient.SqlVisitor.VisitSelectCore(SqlSelect 选择) §System.Data.Linq.SqlClient.PostBindDotNetConverter.Visitor.VisitSelect(SqlSelect 选择) §System.Data.Linq.SqlClient.SqlVisitor.Visit(SqlNode 节点) §System.Data.Linq.SqlClient.SqlProvider.BuildQuery(结果形状) 结果形状,类型resultType,SqlNode 节点,只读集合
1
parentParameters、SQLNodeAnotations
注释)
§System.Data.Linq.SqlClient.SqlProvider.BuildQuery(表达式
查询,SQLNodeAnotations注释)
§System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.GetQueryText(表达式
(查询)
§System.Data.Linq.DataQuery
1.ToString() ácovCake.Services.ProjetAlerts.RetrieveProjectsByUsers(布尔值 更新(ERTS)dans D:\AspProject\covCake\covCake\Services\ProjetAlerts.cs:ligne 111 §covCake.Controllers.AlertesController.SendAlertEmail(字符串 p) 丹斯 D:\AspProject\covCake\covCake\Controllers\AlertesController.cs:ligne 152 λlambda_方法(ExecutionScope,ControllerBase,Object[]) §System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase 控制器,对象[]参数) §System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext,IDictionary
2
参数)
§System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext
controllerContext,ActionDescriptor
actionDescriptor,IDictionary
2 参数) áSystem.Web.Mvc.ControllerActionInvoker.c_uuDisplayClassA.b_uuu7() §System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter 过滤器,ActionExecutingContext 前文本,函数'1续)
内部异常:

尝试删除
!=“”
比较,并确保您传递的参数不为空:

PROJETS = PROJETS.Where(p => (p.VilleArrive != null) &&
                             (alerte.VilleArrive != null) &&
                              p.VilleArrive.Contains(alerte.VilleArrive));