首頁 > 後端開發 > C++ > 如何將LINQ中的int轉換為實體查詢?

如何將LINQ中的int轉換為實體查詢?

Linda Hamilton
發布: 2025-01-25 18:26:10
原創
752 人瀏覽過

How to Convert Int to String in LINQ to Entities Queries?

在 LINQ to Entities 查詢中將整數轉換為字符串:問題排查和解決方案

在 LINQ to Entities 查詢中嘗試將整數轉換為字符串時,可能會遇到錯誤。此問題主要是因為不支持隱式類型轉換。

在第一個代碼片段中:

<code class="language-csharp">var items = from c in contacts
            select new ListItem
            {
                Value = c.ContactId, //无法将类型“int”(ContactId)隐式转换为类型“string”(Value)。
                Text = c.Name
            };</code>
登入後複製

編譯器會提示錯誤,因為它無法將整數 ContactId 隱式轉換為字符串 Value。

在 LINQ to Entities 中使用 ToString() 顯式將整數轉換為字符串也會失敗:

<code class="language-csharp">var items = from c in contacts
            select new ListItem
            {
                Value = c.ContactId.ToString(), //抛出异常:ToString 在 linq to entities 中不受支持。
                Text = c.Name
            };</code>
登入後複製

解決方案:

為了解決這個問題,可以使用 EF v4 中的 SqlFunctions.StringConvert 函數。但是,由於沒有整數的重載,可以先將其轉換為雙精度浮點數或十進制數:

<code class="language-csharp">var items = from c in contacts
            select new ListItem
            {
                Value = SqlFunctions.StringConvert((double)c.ContactId).Trim(),
                Text = c.Name
            };</code>
登入後複製

這種方法成功地將整數 ContactId 轉換為字符串,並允許您繼續進行 LINQ to Entities 查詢。

以上是如何將LINQ中的int轉換為實體查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板