2013-10-09 77 views
1
var trnlist = from tr in db.DebtorTransactions 
           join wr in db.Warranties 
         on tr.ProductID equals Convert.ToInt32(wr.PkfWarranty) into wrtd 
           from wr1 in db.Warranties 
           join sr in db.SalesReps 
           on wr1.fldSrId equals sr.pkfSrID into wrsr 
           from wr2 in db.Warranties 
           join ag in db.Agentsenter code here 
           on wr2.fldAgentID equals ag.pkfAgentID into wrag 
           select wrtd; 


tr.ProductID is a int and wr.PKfWarranty is String 
var rustul= convert.toint32(tr.ProductID) dose't sutable for me 
is there any build in function of Linq to entity to do this? 

提前感謝如何將linq中的字符串轉換爲int實體?

tr.ProductID是一個i​​nt和wr.PKfWarranty是字符串 VAR rustul = convert.toint32(tr.ProductID)dose't sutable我 有沒有建立在功能Linq要實體做到這一點? 預先感謝

+1

'變種整數= strings.Select(X => int.Parse(X));' – Khan

+1

沒有先生..its不工作 –

+0

錯誤是「爲int.parse最好重載方法匹配(字符串)有一些無效的參數「 –

回答

2

在這裏,您說:

tr.ProductID是INT

然後嘗試:

convert.toint32(tr.ProductID)

所以...你正在嘗試轉換請將int改爲int?在評論你說:

爲int.parse(串)的最佳重載方法匹配具有一些無效參數

好吧,如果你想打電話int.Parse()和傳遞一個int然後你可能會得到那個確切的錯誤。我想有沒有超載int.Parse()接受int,因爲,價值已經是int

讓我們回頭看看您的問題描述:

tr.ProductID是一個i​​nt和wr.PKfWarranty是字符串

你想這兩個值進行比較?然後,你要麼需要tr.ProductID轉換爲string

tr.ProductID.ToString() 

轉換wr.PKfWarrantyint

int.Parse(wr.PKfWarranty) 

有幾件事情需要注意:

  • 從轉換一個intstring是相當安全的,我懷疑你會永遠有這個問題。但是,從string轉換爲int假設表示字符串可以將轉換爲int。如果字符串中有任何內容不是int,或者數字太大而不適合int數據類型,情況就不會如此。 int.TryParse()是爲此目的而存在的,但在LIN-LIN語句中使用會非常棘手,特別是當該語句是需要生成SQL代碼的表達式樹時。
  • 如果您將int轉換爲string,則有不同的方式可以比較字符串。取決於這是發生在結果SQL代碼中還是在C#代碼中發揮作用。如果是後者,string.Equals()是首選的方法。
+0

謝謝Mr.David :) –

+0

我沒讀過所有的解釋,我轉換第二個值與Int比較(感謝你),它的工作。 –

相關問題