Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.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
LINQ尝试将变量值截断为比较长度_Linq_Sql Server Ce - Fatal编程技术网

LINQ尝试将变量值截断为比较长度

LINQ尝试将变量值截断为比较长度,linq,sql-server-ce,Linq,Sql Server Ce,当“logLevel”的值为“error”时,下面LINQ语句中的where子句会导致以下错误 错误消息=执行命令定义时出错。有关详细信息,请参见内部异常 内部异常=p_linq_2:字符串截断:max=3,len=5,value='Error' 如果我将&(logLevel==“All”| | logLevel==“Error”)更改为&(logLevel==“Error”)则不再发生错误 似乎为了与“All”进行比较,LINQ试图先将“logLevel”中的值截断为3个字符 这是怎么回事

当“logLevel”的值为“error”时,下面LINQ语句中的where子句会导致以下错误

  • 错误消息=执行命令定义时出错。有关详细信息,请参见内部异常
  • 内部异常=p_linq_2:字符串截断:max=3,len=5,value='Error'
如果我将
&(logLevel==“All”| | logLevel==“Error”)
更改为
&(logLevel==“Error”)
则不再发生错误

似乎为了与“All”进行比较,LINQ试图先将“logLevel”中的值截断为3个字符

这是怎么回事

(我正在运行MVC4、SQLCE4)

IQueryable list=(来自于一个in\u context.ELMAH\u错误

其中a.TimeUtc>=start&&a.TimeUtc Linq to这是什么?Linq to entities(\u context是DBContext对象)…我应该发布更多代码吗?(DBContext类、ELMAH\u错误类等)您是否犯了错误,是不是应该是
a.logLevel
?如果不是,您应该评估c#code中
logLevel
的值,并决定是否执行查询。logLevel是上述代码所在方法的参数
IQueryable<LogEvent> list = (from a in _context.ELMAH_Error
    where a.TimeUtc >= start && a.TimeUtc <= end
    && (logLevel == "All" || logLevel == "Error")
    select new LogEvent
    {
    IdType = "guid", Id = "",IdAsInteger = 0,IdAsGuid = a.ErrorId,LoggerProviderName = "Elmah",LogDate = a.TimeUtc,MachineName = a.Host,Message = a.Message,Type = a.Type,Level = "Error",Source = a.Source,StackTrace = ""
    });