从 c# 中的另一个类获取对象 ID

本文关键字:获取 取对象 ID 另一个 | 更新日期: 2023-09-27 18:34:45

为什么我在这个问题上出现错误?我想要流派的ID...在数据库中,游戏表具有流派表中的外键genre_id。

 public List<Game> GetGames()
    {
        List<Game> games = new List<Game>();
        try
        {
            conn.Open();
            string selectQuery = "select * from game";
            MySqlCommand cmd = new MySqlCommand(selectQuery, conn);
            MySqlDataReader dataReader = cmd.ExecuteReader();
            while (dataReader.Read())
            {
                string gameNaam = dataReader.GetString("gamenaam");
                int gameId = dataReader.GetInt32("game_id");
                int genreId = dataReader.GetInt32("genre_id");
                Game game = new Game { ID = genreId, game.Genre.ID = genreId, Naam = gameNaam};
                games.Add(game);
            }
        }
        catch (Exception e)
        {
            Console.Write("Ophalen van genres mislukt " + e);
        }
        finally
        {
            conn.Close();
        }
        return games;
    }
}

我在这个-----> game.Genre.ID = 流派 ID 上收到一个错误

代码类型和游戏:

   public class Game 
{
    public String Naam { get; set; }
    public Genre Genre { get; set; }
    public int ID { get; set; }
    public override string ToString()
    {
        return String.Format("{0} (id = {1})", Naam, ID);
    }
}

 public class Genre
{
    public string Naam { get; set; }
    public bool Verslavend { get; set; }
    public int ID { get; set; }
    public override String ToString()
    {
        return String.Format("{0} ({1})", Naam,
            Verslavend ? "Verslavend" : "Niet verslavend");
    }
  }

从 c# 中的另一个类获取对象 ID

这是无效的语法:

new Game { ID = genreId, game.Genre.ID = genreId, Naam = gameNaam};
                         ^--- here

game在那种情况下是不存在的。 也不能像这样在属性初始值设定项中设置子属性。

如果要设置 Genre 属性,则必须单独设置它。 像这样:

new Game {
  ID = genreId,
  Genre = new Genre {
    ID = genreId
  },
  Naam = gameNaam
};