【发布时间】:2010-12-10 07:41:37
【问题描述】:
我的 Linq To 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]
当我手动将它运行到 sql server 时,它执行得很好。但它在由 linq 执行时返回 ArgumentNullException 异常。 实际上,测试的列“VilleArrive”(“city”)永远不会为空,而是始终为空字符串
我真的不明白它为什么会附加。 我的问题看起来像这个LINQ to SQL and Null strings, how do I use Contains? 但答案对我不起作用。
“LIKE”关键字似乎调用了 Linq.SqlClient.SqlHelpers.GetStringContainsPattern(String text, Char escape)
谢谢你的帮助,对不起我的英语。
这里的堆栈跟踪我的项目是一个 ASP MVC 1.0 项目
System.ArgumentNullException 是 用户代码未处理 Message="La valeur ne peut pas être null。\r\nNom du paramètre:文本"
来源="System.Data.Linq"
参数名称=“文本”堆栈跟踪: à System.Data.Linq.SqlClient.SqlHelpers.GetStringContainsPattern(字符串 文本,字符转义) à System.Data.Linq.SqlClient.PostBindDotNetConverter.Visitor.TranslateStringMethod(SqlMethodCall 麦克) à System.Data.Linq.SqlClient.PostBindDotNetConverter.Visitor.VisitMethodCall(SqlMethodCall 麦克) à System.Data.Linq.SqlClient.SqlVisitor.Visit(SqlNode 节点) à System.Data.Linq.SqlClient.SqlVisitor.VisitExpression(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.VisitExpression(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 一种) à 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.VisitUnion(SqlUnion 苏) à System.Data.Linq.SqlClient.SqlVisitor.Visit(SqlNode 节点) à System.Data.Linq.SqlClient.SqlVisitor.VisitAlias(SqlAlias 一种) à 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(ResultShape resultShape,类型 resultType,SqlNode 节点,ReadOnlyCollection1 parentParameters, SqlNodeAnnotations annotations) à System.Data.Linq.SqlClient.SqlProvider.BuildQuery(Expression query, SqlNodeAnnotations annotations) à System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.GetQueryText(Expression query) à System.Data.Linq.DataQuery1.ToString() à covCake.Services.ProjetAlerts.RetrieveProjectsByUsers(布尔 UpdateAlerts) 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_method(ExecutionScope , ControllerBase , Object[] ) à System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase 控制器,对象 [] 参数) à System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext 控制器上下文,IDictionary2 parameters) à System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary2 参数) à System.Web.Mvc.ControllerActionInvoker.c__DisplayClassa.b__7() à System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter 过滤器,ActionExecutingContext preContext,Func`1 延续)
内部异常:
【问题讨论】:
标签: asp.net asp.net-mvc linq-to-sql