LINQ to Entities方法'System.String ToString错误

时间:2012-09-27 03:10:57

标签: linq entity-framework

我需要将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, 但我怎样才能让它发挥作用呢?

1 个答案:

答案 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();