LINQ to Entities 中整數轉字串的挑戰
在 LINQ to Entities 中,程式設計師在嘗試將查詢中的整數轉換為字串時可能會遇到困難。轉換可能會導致錯誤,如下例所示:
<code class="language-c#">var items = from c in contacts select new ListItem { Value = c.ContactId, // 无法隐式转换类型“int”(ContactId)到“string”(Value)。 Text = c.Name };</code>
另一種方法是使用 ToString() 方法,這似乎是一個可行的解決方案:
<code class="language-c#">var items = from c in contacts select new ListItem { Value = c.ContactId.ToString(), // 抛出异常:LINQ to Entities 不支持 ToString()。 Text = c.Name };</code>
但是,此嘗試也會失敗,因為 LINQ to Entities 不支援 ToString(),從而產生異常。
在 EF v4 克服轉換障礙
EF v4 透過 SqlFunctions.StringConvert 方法解決了此轉換問題。此方法提供了一種將值轉換為字串的機制,無需明確轉換。以下程式碼示範了其用法:
<code class="language-c#">var items = from c in contacts select new ListItem { Value = SqlFunctions.StringConvert((double)c.ContactId).Trim(), Text = c.Name };</code>
透過在 StringConvert() 參數中將整數轉換為雙精確度數,可以在 LINQ to Entities 中成功將整數轉換為字串。
以上是如何將整數轉換為LINQ中的字符串轉換為實體?的詳細內容。更多資訊請關注PHP中文網其他相關文章!