2012-08-05 60 views
2

我想在c#中創建一個selectlist。我的代碼:不支持ToString()方法

 var ceremonies = db.Ceremonies; 
     var Ceremonies = 
      from c in ceremonies 
      select new SelectListItem 
      { 
       Text = c.Name + "_" + c.Date, 
       Value = c.Id.ToString() 
      }; 

但是,我在這裏得到了異常,像ToString() method not supported。有什麼問題 ?

回答

14

您的查詢正在轉換爲SQL - 但無法正確處理對ToString的調用。通常固定這一點最簡單的方法是有效地將查詢到需要在數據庫中完成的部分,然後通過AsEnumerable切換到LINQ到對象:

var ceremonies = db.Ceremonies 
        .Select(c => new { c.Name, c.Date, c.Id } 
        .AsEnumerable() 
        .Select(c => new SelectListItem { 
           Text = c.Name + "_" + c.Date, 
           Value = c.Id.ToString() 
          }); 

順便說一句,聲明瞭兩個局部變量,只有通過案件纔會變得非常討厭的可讀性。