我需要将2个字段组合成1个字段。名称和价格。 但是,我收到了LINQ错误
LINQ to Entities无法识别方法'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, 但我怎样才能让它发挥作用呢?
答案 0 :(得分: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();