2010-04-29 133 views
0

我用這個:類型或命名空間名稱找不到

public class ConstructionRepository 
    { 
     private CRDataContext db = new CRDataContext(); 

     public IQueryable<Material> FindAllMaterials() 
     { 
      //return db.Materials; 
      var materials = from m in db.Materials 
          join Mt in db.MeasurementTypes on m.MeasurementTypeId equals Mt.Id 
          select new Material 
          { 
           Mat_Name = m.Mat_Name, 
           MeasurementTypeId = Mt.Name, 
           Mat_Type = m.Mat_Type }; 
      return materials.AsQueryable(); 
     } 
    } 

它給了我唯一的錯誤

  1. 「CrMVC.Models.Material」不包含'的定義材質ID」, 'MesName', 'MesType'

編輯: 'MatId','MesName','MesType'只是我給出的假名稱是錯誤的..

+1

似乎無法找到MaterialsView。缺少包含或引用?也可能導致錯誤2。 3 unknown – RvdK 2010-04-29 13:43:08

回答

1

Material類必須具有與您在選擇的新Material {...}子句中使用的名稱相同的名稱的可設置屬性,但不能僅將它們設置爲。

+0

@Daniel哦我現在明白了 – 2010-04-29 14:15:22

4

我會說修復第一個錯誤將是一個很好的起點 - 你確定你有在您的項目中引用了包含MaterialsView的程序集,並在代碼文件的頂部添加了using指令,以包含MaterialsView的名稱空間?

另外兩個錯誤 [見編輯]第一個和第三個錯誤將消失,一旦你有正確的參考和包括MaterialsView類型。

編輯:作爲Tejs points out in his answer,第二個錯誤肯定是由於這樣的事實,你是缺少AsQueryable通話。

+0

@Andrew看看我的編輯... – 2010-04-29 13:51:36

1

1)確保你的'材料視圖'類所在的名稱空間是在這個代碼文件中的引用。如果它被引用,請檢查以確保該文件正在構建並且沒有任何編譯器錯誤 - 有時它可以掩蓋真正的錯誤。

2)這樣的LINQ查詢將返回一個IEnumerable實例,而不是IQueryable。當您返回材質時,請調用materials.AsQueryable();

3)我沒看到在這個方法中調用ToList(),編譯器告訴你這個錯誤發生在哪裏?

+0

+1第二個錯誤肯定是因爲缺少調用'AsQueryable'的好結果! – 2010-04-29 13:49:03

+0

@Tejs看看我的編輯 – 2010-04-29 13:53:50

0

類型或命名空間名稱MaterialsView找不到(是否缺少using指令或程序集引用?)

(是的,這是一個答案)。

+0

你看不到這一點,但我現在很難滾動我的眼睛... – Tejs 2010-04-29 13:49:23

相關問題