2010-09-07 41 views
1

我是Linq的新手。我搜索並搜索了一個解決方案,並找不到任何東西。我有一個Linq查詢,我想在將它傳遞給下拉列表之前將一行(「選擇用戶」)插入頂部。我一直在試圖使用聯盟,但現在利用(它一直告訴我,我的對象不支持聯盟方法)。在嘗試插入一行之前,我的代碼非常簡單。mvc LinqToSql爲下拉列表添加「Select User」行

public SelectList DropDown_Users() 

    { 
     var context = new VivarianDataContext(); 

     var query = from t in context.AspnetUsers 
        select new { t.UserId, t.LastName }; 

     list = new SelectList(query.AsEnumerable(), "UserId", "LastName"); 
     return list; 
    } 

現在我嘗試插入一行,我發現這在互聯網上,似乎說他的解決方案將工作。但它充滿了錯誤。 http://magicode.wordpress.com/2009/08/20/inserting-an-item-in-iqueryable-object-using-union-method-and-linq/

我試着用下面的代碼來實現它,但它不能編譯。

public SelectList DropDown_Users() 
    { 
     SelectList list; 

     //get the original data   
     var context = new SQL2005633131VivarianDataContext(); 
     var query = from t in context.AspnetUsers 

     select new { t.UserId, t.LastName }; 

     //create a dummy table with an empty row 
     var AllUsers = new List<AspnetUsers>(); 
     var BlankUser = new AspnetUsers() 
      {UserId=System.Guid.Empty, LastName="Select One"}; 
     AllUsers.Add(BlankUser); 

     //use Union to join the data - ERRORS HERE - doesn't support Union 
     var newTable = AllUsers.Union(query); 


     list = new SelectList(newTable.AsEnumerable(), "UserId", "LastName"); 
     return list; 
    } 

太累了我會失明。任何幫助?

回答