2014-02-20 67 views
1

錯誤消息: 成員'Player.GameID'沒有支持的SQL轉換。成員'Player.GameID'不支持轉換爲SQL

LINQ:

foreach (Table ta in custQuery) 
     { 
      if (ta.Gameform_string.ToLower() == "pineapple") 
      { 
       //Add the table 
       Tables.Add(ta.GameID, ta); 

       //Add player to seats 
       Table<Player> p = db.GetTable<Player>(); 

       IQueryable<Player> playerQuery = 
       from Seat in p 
       where Seat.GameID == "ASD" 
       select Seat; 

       foreach (Player player in playerQuery) 
       { 
        ta.AddSeat(player); 
       } 
      } 
     } 

如果我刪除Seat.GameID == 「ASD」 所有其他領域被加載沒有任何問題。

在播放器類我有這樣的代碼:

[Column(Name = "GameID", Storage = "gameID")] 
    private string gameID; 
    public string GameID { get { return gameID; } set { gameID = value; } } 

此線程提到,LINQ需要知道它被映射,它是在我的情況,據我可以看到它: The member [class] has no supported translation to SQL

如果我沒有where子句運行程序,我可以看到玩家級的獲取與遊戲ID值創建:

 gameID "ASD" string 
    GameID "ASD" string 
+0

什麼特定的行是拋出錯誤?我認爲你應該把'from p'中的Seat'改爲'from'in p',以免混淆編譯器,因爲它可能是'Seat'是'Seat'類型的對象而不是變量名稱。 – user1477388

+0

嗨,我把它從Seat改成了S,但沒有運氣。錯誤發生在這一行上:「foreach(playerQuery中的播放器播放器)」 – Jefecito

+0

而不是使用'IQueryable '使用'List '。告訴我它是否適合你。 – user1477388

回答

2

[Column(Name = "GameID", Storage = "gameID")]屬性必須應用於公共GameID屬性,而不適用於gameID私有字段。