1

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 がないことは理解していますが、これを機能させるにはどうすればよいですか?

4

1 に答える 1

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();
于 2012-09-27T03:14:32.680 に答える