2013-08-21 87 views
0

我在WPF下面寫了這個代碼,但它說:不能類型的表型轉換爲「字符串」

錯誤1無法將類型「WpfApplication.Role」到「串」。

在這裏,代碼:

  1. 角色和N_Roles_Users是數據庫表的名稱。
  2. currentUser是字符串參數。
  3. myEntities是數據庫的名稱。

    public List<Role> GetUserRoles(string currentUser) 
        { 
         nrcsaEntities dbcon = new nrcsaEntities(); 
         N_Roles_Users allroles = null; 
         List<Role> roleslist = new List<Role>(); 
         if (allroles == null) 
         { 
         allroles = new N_Roles_Users(); 
          { 
          var y = from x in dbcon.N_Roles_Users where x.user_name == currentUser select x.role_name; 
          foreach (var a in y) 
           { 
           roleslist.Add(a); //Here it is Generating Error 
    
           } 
          q.ItemsSource = roleslist.ToList(); 
    
          } 
         } 
        return roleslist; 
        } 
    
+2

你把'x.role_name'(這大概是一個字符串)成'列表'。你爲什麼期望這個工作? –

+2

「a」有哪些屬性? – bhs

+0

@DanielKelley我想在rolelist中保存currentUser的所有角色名稱。 –

回答

3

您查詢返回x.role_name,這似乎是一個string

var y = from x in dbcon.N_Roles_Users 
     where x.user_name == currentUser 
     select x.role_name; 

這就是爲什麼你不能把它分配給List<Role>。更改您的查詢選擇Role實體,而不是隻是角色名稱,它應該工作。

或更改您的方法聲明返回List<string>

public List<string> GetUserRoles(string currentUser) 

,並更改roleslistList<string>太:

List<string> roleslist = new List<string>(); 
1

List<Role> rolesListRole類型的列表。

您的查詢似乎返回一個字符串集合。

下面,你嘗試將string添加到列表中,它應該是一個Role

roleslist.Add(a); 

通過對你真的想添加Role對象本身的東西看起來,在這種情況下,您可以更新查詢返回角色的集合:

var y = from x in dbcon.N_Roles_Users where x.user_name == currentUser select x; 
相關問題