Linq to sql 匿名托管的DynamicMethods程序集

Linq to sql 匿名托管的DynamicMethods程序集,linq-to-sql,Linq To Sql,在我的mvc web应用程序中,我遇到以下错误: 匿名托管的DynamicMethods程序集 堆栈跟踪:在路径中System.Data.Linq.SqlClient.ObjectReaderCompiler.ObjectReader`2.MoveNext()处的System.Data.Linq.SqlClient.ObjectReaderCompiler.ObjectReader`2.MoveNext()处读取匿名类型14(ObjectMaterialer1) 消息:无法将空值分配给Syste

在我的mvc web应用程序中,我遇到以下错误:

匿名托管的DynamicMethods程序集
堆栈跟踪:在路径中System.Data.Linq.SqlClient.ObjectReaderCompiler.ObjectReader`2.MoveNext()处的System.Data.Linq.SqlClient.ObjectReaderCompiler.ObjectReader`2.MoveNext()处读取匿名类型1
4(ObjectMaterialer
1) 消息:无法将空值分配给System.Int32类型的成员,该类型是不可为空的值类型

当我从本地服务器运行我的站点时,它工作正常。 但当它在远程服务器上运行时,它给出了上述错误

这是我的密码:

var res=
(from r in DetailsTable 
 where r.Activated == true 
 group r by new { r.ActivationDate, r.ProductID, r.SubProductID } into t 
 select new { icount = t.Count(), 
              sActivationDate = t.Key.ActivationDate.ToShortDateString(), 
              iProductID = t.Key.ProductID, 
              iSubProductid = t.Key.SubProductID })
.OrderBy(r => r.icount);
谢谢
正如

您遇到的问题是,在本地服务器上存在数据的远程服务器上,您的查询是空的

我不确定异常发生在查询的哪个部分,所以我建议将查询一分为二

var res=
     from r in DetailsTable 
     where r.Activated == true;

if(res.Count() == 0)
  return; // or handle gracefully as appropriate

var groups = 
     from r in res
     group r by new { r.ActivationDate, r.ProductID, r.SubProductID } into t 
     select new { icount = t.Count(), 
                  sActivationDate = t.Key.ActivationDate.ToShortDateString(), 
                  iProductID = t.Key.ProductID, 
                  iSubProductid = t.Key.SubProductID })
    .OrderBy(r => r.icount);
我确信在一条查询语句中有一种更优雅的方式来实现这一点,但是如果没有更多的细节,我不确定到底该如何进行