2011-10-10 58 views
-1

填補在我的代碼,我需要幫助把result價值爲oList泛型集合通過VAR值

NorthwindDataContext db = new NorthwindDataContext(); 
List<Category> oList = new List<Category>(); 
var result = from p in db.Categories 
     select new { CategoryID = p.CategoryID, CategoryName=p.CategoryName }; 

我想oList的結果值填補。

+2

不要忘記,以紀念答案接受,如果你得到想要的信息.. –

回答

1

您的結果沒有列表中所需的整個對象。 因此,您可以改爲執行以下操作。

NorthwindDataContext db = new NorthwindDataContext(); 
      List<Category> oList = new List<Category>(); 
      oList.AddRange(db.Categories); 

如果添加到列表中沒有嚴格要求,那麼你可以簡單地轉換結果集列出像這樣:

NorthwindDataContext db = new NorthwindDataContext(); 
      List<Category> oList = db.Categories.ToList(); 

但是你要知道,這是示例代碼。像這樣拉整個表並不是最好的辦法(除非你知道表中不會修改記錄的數量,而且它可以安全地將它們全部加載到內存中)。

+0

感謝回覆,我知道這個過程,問題白羊當我寫在選擇新的{}上我的linq.How要解決這個問題 – shamim

+0

@shamim:不要這樣做!如果您只需要一部分值,請將其保留爲匿名類型的列表。如果你想要完整的類別對象,不要獲取屬性的子集... –

0
NorthwindDataContext db = new NorthwindDataContext(); 
     List<Category> oList = db.Categories.ToList(); 

編輯:

假設Category類是自己

NorthwindDataContext db = new NorthwindDataContext(); 
     List<Category> oList = db.Categories.Select(p => new Category { CategoryID = p.CategoryID, CategoryName=p.CategoryName }).ToList(); 
0

目前的結果是一個匿名類型的集合,你希望它回報你一個類別。

NorthwindDataContext db = new NorthwindDataContext(); 
      List<Category> oList = new List<Category>(); 
      var result = from p in db.Categories 
         select new Category { CategoryID = p.CategoryID, CategoryName=p.CategoryName }; 

然後,您可以添加您的分類來oList -

oList.AddRange(result.ToList()); 

編輯:

好了,因爲你只想從數據庫中獲取幾場,創建一個新的只鍵入這些字段(如果您不需要在方法外使用它,則不需要執行此操作,只需將其保留爲匿名類型即可) -

class CategorySml 
{ 
    public int CategoryID {get; set;} 
    public string CategoryName {get; set;} 
} 

...

NorthwindDataContext db = new NorthwindDataContext(); 
      List<CategorySml> oList = new List<Category>(); 
      var result = from p in db.Categories 
         select new CategorySml { CategoryID = p.CategoryID, CategoryName=p.CategoryName }; 
+0

我想要一個類別表的列表。這個表包含很多列,我想選擇不是所有的列。如何解決這個問題 – shamim

+0

我已經嘗試addrange(),但顯示我錯誤不能從'System.Collections.Generic.List '轉換爲'System.Collections.Generic.IEnumerable ' – shamim

+0

你可能應該提到,在你的問題,因爲這使問題變得非常不同。 –