2012-03-28 58 views
2

我在我的開發機器中遇到了這個錯誤。這個錯誤不會發生在指向相同數據庫的其他機器上。絕對兩臺服務器都不相同。我不知道在一臺服務器中丟失了哪些軟件會導致此問題。兩臺機器都運行相同的OS 2008 R2。System.InvalidOperationException:可爲空的對象必須有一個值。 Linq to sql

using (MYDB.MyDB oDB = new MYDB.MyDB()) 
     { 
      var query = from t in oDB.Products 
         where (_ProductId.HasValue?_ProductId==t.Productid:true) 
         select new Product() 
         { 
          ProductId = t.Productid, 
          ManufacturerId = t.Manufacturerid, 
          ManufacturingNumber = t.Manufacturingnumber, 
          CustomProduct = t.Iscustomproduct ? "Yes" : "No", 
          IsCustomProduct = t.Iscustomproduct, 
          SubCategoryName = t.Subcategory.Subcategoryname 
         }; 
      return query.ToList(); 
     } 

任何幫助,高度讚賞

感謝, Senthilkumar

回答

1

我無法重現類似情況異常,但部分_ProductId.HasValue?_ProductId==t.Productid:true看起來嫌疑。我想如下,如果你運氣好,還可以解決你的問題改變它,否則它是一個改善反正:

var query = from t in oDB.Products; 
if (_productId.HasValue) 
{ 
    query = query.Where(t => t.Productid == _productId.Value); 
} 
query = query.Select(t => new Product() {... 

另一個原因可能是Product.ProductId不是可空INT。

相關問題