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 to Entities 中将整数转换为字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!