2012-12-19 29 views
0

剛剛開始與存儲庫/接口和類似的混亂,我有一個錯誤,當我選擇一個單一的記錄,我不能解決。MVC LINQ:找不到源類型爲'X'的查詢模式的實現。 '選擇'找不到

我的控制器具有:

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(); 
    } 

關於這個問題的任何想法?

謝謝, 克里斯

+1

工作?是IEnumerable型的tblBreakdown_Log ?源代碼中的x,源代碼需要實現IEnumerable。對於你的例子,你應該可以做「從x在repo.GetAllBreakdowns()選擇....」 – Evan

+0

管理解決這個我認爲使用您的評論。 – munkee

回答

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); 
    } 

所有如repo.GetBreakdown(ID)現在需要=]從X

相關問題