如何在Linq中将数字转换为字符串,而不拉入本地对象

本文关键字:对象 字符串 Linq 转换 数字 | 更新日期: 2023-09-27 18:19:45

我有一个查询,它将数据库中的分层数据提取到结构对象中:

class HierarchicalData {
  public int ID {get; set;}
  public string Description {get; set;}
  public IEnumerable<HierarchicalData> Children {get; set;}
}

我对如何查询数据很熟悉。当我的一个层次结构元素需要为Description使用一个数字时,问题就来了。我不能使用.ToString(),因为Linq-to-Entities没有SQL转换。我不想把所有的数据都拉到内存中,这样我就可以调用.ToString()——这将是非常低效的。

我只想要某种表达式,它可以在数据库端将数字转换为字符串。

如何在Linq中将数字转换为字符串,而不拉入本地对象

您可以在Linq中使用SqlFunctions.StringConvert(double)到实体

  • MSDN示例:http://msdn.microsoft.com/en-us/library/dd456858.aspx
  • SqlFunctions引用:http://msdn.microsoft.com/en-us/library/system.data.objects.sqlclient.sqlfunctions.aspx