2012-09-27 87 views
1

我需要将2个字段组合到1个字段中。名称和价格。 不过,我得到一个错误LINQLINQ to Entities方法'System.String ToString错误

LINQ到实体无法识别方法“System.String的ToString

这是我的LINQ语句。

 var results = ctx.Plans.Select(p => new PlansView 
     { 
      PlanID = p.planID, 
      PlanActive = p.planActive, 
      PlanCost = p.planCost, 
      PlanName = p.planName, 
      PlanNameAndCost = p.planName + " " + Convert.ToString(p.planCost) 
     }).OrderBy(p => p.planName).ToList(); 

PlanNameAndCost = p.planName + “” + Convert.ToString(p.planCost)导致错误。 我知道SQL没有ToString, ,但我怎么能得到这个工作?

回答

2

PlanNameAndCost = p.planName + " " + Convert.ToString(p.planCost)导致错误。

这是预期的:投影在RDBMS端执行;你的SQL数据库不知道什么是ToString。当您在内存中时应该添加此成员,即在AsEnumerable()

var results = ctx.Plans.Select(p => new PlansView 
    { 
     PlanID = p.planID, 
     PlanActive = p.planActive, 
     PlanCost = p.planCost, 
     PlanName = p.planName 
    }).OrderBy(p => p.planName) 
    .AsEnumerable().Select(p => new PlansView 
    { 
     PlanID = p.planID, 
     PlanActive = p.planActive, 
     PlanCost = p.planCost, 
     PlanName = p.planName, 
     PlanNameAndCost = p.planName + " " + Convert.ToString(p.planCost) 
    ).ToList(); 
相关问题