Asp.net Contains随Linq To Sql返回空异常
我的Linq到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] &
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,IDictionary2
参数)
§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));