将Linq中的int转换为实体中的字符串时出错

时间:2013-08-30 21:20:30

标签: linq entity-framework linq-to-sql entity-framework-5

我正在尝试连接给定代码中的某些字段。它仅适用于字符串字段,但是当我连接int字段时,则会出现错误。

var query = (from u in db.IdFormat
                 select new
                 {
                     IdPre = u.IdPrefix + "" + u.IdDMY + "" + u.IdSeparator + "" + u.Sequence.ToString() 

                 }).FirstOrDefault();



public class IdFormat
{
    public int Id { get; set; }
    public String IdPrefix { get; set; }
    public string IdDMY { get; set; }
    public string IdSeparator { get; set; }
    public int IdSequence { get; set; }      
}

但是收到错误消息“LINQ to Entities无法识别方法'System.String ToString()'方法,并且此方法无法转换为商店表达式。”

请帮帮我。提前谢谢。

2 个答案:

答案 0 :(得分:0)

Linq to Entities不支持尽可能多的函数转换为服务器托管的sql。

ToString(在任何东西上)就是其中之一。

这是一篇建议解决方法的帖子:  http://mosesofegypt.net/post/2008/08/24/LINQ-to-Entities-what-is-not-supported.aspx

以下是支持的功能列表: http://msdn.microsoft.com/en-us/library/bb738681.aspx

这是一篇询问如何将int转换为字符串的帖子: Problem with converting int to string in Linq to entities

答案 1 :(得分:0)

使用LintToObject _db.IdFormat。 AsEnumerable()

var query = (from u in db.IdFormat.AsEnumerable()
                 select new
                 {
                     IdPre = u.IdPrefix + "" + u.IdDMY + "" + u.IdSeparator + "" + u.Sequence.ToString() 

                 }).FirstOrDefault();