2012-09-27 112 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(); 
相關問題