成员'Player.GameID'没有支持的SQL转换

时间:2014-02-20 21:56:19

标签: c# linq

错误讯息: 成员'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子句的情况下运行程序,我可以看到使用gameID值创建了播放器类:

        gameID  "ASD"   string
    GameID  "ASD"   string

1 个答案:

答案 0 :(得分:2)

[Column(Name = "GameID", Storage = "gameID")]属性必须应用于公共GameID属性,而不应用于gameID私有字段。