2010-07-28 232 views
2

我已經使用Linq-to-SQL創建了一個Area類。嘗試創建部分類時出錯

現在我想創建一個同名的部分類,以便我可以實現驗證。任何幫助?

錯誤1無法隱式轉換類型 'System.Data.Linq.Table<SeguimientoDocente.Area>' 到 'System.Linq.IQueryable<SeguimientoDocente.Models.Area>' C:\用戶\塞爾吉奧\文檔\ Visual 工作室 2010 \項目\ SeguimientoDocente \ SeguimientoDocente \型號\ AreaRepository.cs 14 20 SeguimientoDocente

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 

namespace SeguimientoDocente.Models 
{ 
    public class AreaRepository 
    { 
     private SeguimientoDataContext db = new SeguimientoDataContext(); 

     public IQueryable<Area> FindAllAreas() 
     { 
      return db.Areas; 
     } 

     public Area GetArea(int id) 
     { 
      return db.Areas.SingleOrDefault(a => a.ID == id); 
     } 

     public void Add(Area area) 
     { 
      db.Areas.InsertOnSubmit(area); 
     } 

     public void Delete(Area area) 
     { 
      db.Areas.DeleteOnSubmit(area); 
     } 

     public void Save() 
     { 
      db.SubmitChanges(); 
     } 
    } 
} 

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 

namespace SeguimientoDocente.Models 
{ 
    public partial class Area 
    { 

    } 
} 

下面是截圖。 alt text

回答

3

這是幾乎可以肯定,因爲你的部分類是不正確的命名空間。進入LINQ模型的.designer.cs文件,查找生成的Area類,並確保您包裝的部分類的名稱空間匹配。

編輯

我只是固定在你的問題的格式。該錯誤消息確實表明您的部分類位於錯誤的名稱空間中。

錯誤1無法隱式轉換 型「System.Data.Linq.Table<SeguimientoDocente.Area>」 到 「System.Linq.IQueryable<SeguimientoDocente.Models.Area>

正如你可以從上面的錯誤看,您需要更改命名空間的局部類是在爲SeguimientoDocente,而不是SeguimientoDocente.Models。就目前而言,它們是兩個完全不同的不兼容類型,它們恰好具有相同的簡單名稱。

2

錯誤消息告訴您問題出在AreaRepository.cs文件的第14行。具體而言,您試圖從返回類型爲IQueryable<Area>的方法返回db.Areas,但實際上db.Areas實際上是System.Data.Linq.Table類型。

+0

我正在學習本教程。有什麼建議麼? – 2010-07-28 01:26:57

+0

請注意,只有在添加部分Area類時纔會出現此錯誤。當沒有區域部分時,代碼編譯和單詞正確。 – 2010-07-28 01:32:18

+0

其實OP的問題沒有正確標記。通常表確實實現IQueryable的但在這種情況下,他無意中定義具有相同的簡單名稱爲T1 A T2。 – Josh 2010-07-28 02:33:17