0

リポジトリ/インターフェースなどをいじり始めたばかりで、解決できない単一のレコードを選択するときにエラーが発生します。

私のコントローラーには次のものがあります:

    public ViewResult Detail(int ID)
    {
        var Details = (from x in repo.GetBreakdown(ID) select new BreakdownDetailViewModel { }).SingleOrDefault();

        return View(Details);
    }

ステートメント repo.GetBreakdown(ID) に下線が引かれ、次のエラーが表示されます。

Could not find an implementation of the query pattern for source type ''. 'Select' not found.

私のインターフェースは次のように表示されています:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Domain.Entities;

namespace Domain.Abstract
{
    public interface IBreakdownRepository
    {
        tblBreakdown_Log GetBreakdown(int ID);
        IQueryable<tblBreakdown_Log> GetAllBreakdowns { get; }

    }
}

また、リポジトリ自体には次のものがあります。

 public tblBreakdown_Log GetBreakdown(int ID)
        {
            return (from x in db.tblBreakdown_Logs where x.MB_ID == ID select x).SingleOrDefault();
    }

ここで問題が何であるかについてのアイデアはありますか?

ありがとう、クリス

4

1 に答える 1

0

@Evanのコメントに基づく

リポジトリへのアクセスを次のように変更しました:

    public IEnumerable<tblBreakdown_Log> GetBreakdown(int ID)
        {
            return (from x in db.tblBreakdown_Logs where x.MB_ID == ID select x);
        }

リポジトリへのインターフェースは次のようになりました。

 IEnumerable<tblBreakdown_Log> GetBreakdown(int ID);

そして、私のコントローラーアクセスは次のとおりです。

 public ViewResult Detail(int ID)
        {
        var Details = (from x in repo.GetBreakdown(ID) select new BreakdownDetailViewModel {Machine_Status=x.tblMachine_Status.Machine_Status, MB_ID=x.MB_ID});

        return View(Details);
    }

現在、すべてが必要に応じて機能しています =]

于 2012-12-20T09:03:33.147 に答える