在Entity Framework中将整数转换为字符串

31

如何在Link to EF中将int转换为string?

CLR无法想象将int强制转换为string,而Entity Framework无法确定将.ToString()翻译成什么SQL语句片段。

那么如何编写Linq语句以返回字符串而不是整数?


2
你使用的 EF 版本是什么? - John Hartsock
EF版本4,这有区别吗? - Rabbi
1
EF >= 6.1 支持 ToString: http://blogs.msdn.com/b/adonet/archive/2014/03/17/ef6-1-0-rtm-available.aspx - Stephan Bauer
1个回答

54

遗憾的是,EF 不知道如何转换 .ToString(),您必须使用嵌入式函数 SqlFunctions.StringConvert:http://msdn.microsoft.com/en-us/library/dd466292.aspx。 另外,并没有针对 int 的重载,所以您必须进行类型转换为 double:-(

var vendors = 
   from v in Vendors  
   select new
   {             
       Code = SqlFunctions.StringConvert((double)v.VendorId)
   }; 

2
哇,那太糟糕了。 我现在做的是总是将选择投影到一个中间(通常是匿名)类型中,然后在 AsEnumerable() 或类似方法之后的下一步中将其投影到我的真实对象中。 - Rabbi
我必须将转换后的值传递到where子句中。 - iProgrammer
6
在输出字符串时调用Trim()通常很重要,以避免出现填充的情况。 - ChaseMedallion
那么在 EntityDataSource 中如何使用它呢? - Anderson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接