2013-09-05 138 views
1

我有一個LINQ語句,我想對字符串類型的單個列進行求和。LINQ to Entities無法識別方法'Int32 ToInt32將字符串轉換爲Int

我想要做以下的語句,我是Converting.ToInt32。當我運行這個我得到以下錯誤。

LINQ實體無法識別方法「的Int32 ToInt32(System.String)」方法,和這種方法不能被翻譯成 商店表達。

LINQ聲明

var CoreData = new 
    { 
    Shoots = 
    (from item in coresdb.Productions 
    where item.Date >= StartShift && item.Date <= EndDate 
    select item).Sum(x => Convert.ToInt32(x.ShootCount) 
    ) 
}; 

我已經嘗試了許多不同類型的數據過於轉換,並得到了類似的錯誤。

+0

Duplicate:http://stackoverflow.com/questions/13887296/linq-to-entities-does-not-recognize-the-method-int32-int32system-string-meth – melancia

回答

5

您不能將ToInt32轉換爲T-SQL。使它工作的一種方法是基於從數據庫檢索這樣

var CoreData = coresdb.Productions 
    .Where(item => item.Date >= StartShift && item.Date <= EndDate) 
    .ToList() // get the data into memory first. 
    .Sum(x => Convert.ToInt32(x.ShootCount)); 

更新名單上的內存來運行它:where子句後移動ToList()。

0

如果你不想實現查詢(檢索數據),你可以使用cast(即(int)x.ShootCount)。被轉換爲SQL CAST AS語句。

相關問題