Загрузка данных


using Dapper;
using Microsoft.Data.Sqlite;
Dapper.DefaultTypeMap.MatchNamesWithUnderscores = true;

var connectionSting = "DataSource=planets";

var connection = new SqliteConnection(connectionSting);


bool running = true;

var planet = connection.Query<Planet>("SELECT * FROM planets");
foreach(var i in planet)
{
    Console.WriteLine($"index_from_sun = {i.IndexFromSun}, Name = {i.Name}");
}
Console.WriteLine();
            
while (running)
{
    Console.WriteLine("1. Вывести спутники планеты");
    Console.WriteLine("2. Закрыть программу");

     string? input = Console.ReadLine();

    switch (input)
    {
        case "1":
            Console.Write("Вберите планету: ");

            string? input1 = Console.ReadLine();

            if (int.TryParse(input1, out int planetId) && planetId > 0)
            {
                var satellite1 = connection.Query<Satellite, Planet, Satellite>("SELECT * FROM satellites JOIN planets ON satellites.planet_id = planets.id WHERE planets.id = @PlanetId",
                (satellite, planet) =>
                {
                    satellite.Planet = planet;
                    return satellite;
                }, new {PlanetId = planetId});

                if (!satellite1.Any())
                {
                    Console.WriteLine("Спутников этой планеты не найдено");
                }
                else
                {
                    foreach (var s in satellite1)
                    {
                        Console.WriteLine($"id = {s.Id}, Name = {s.Name}, PlanetId = {s.PlanetId}");
                    }
                }
            }
            else
            {
                Console.WriteLine("Некорректный ID планеты.");
            }

            Console.WriteLine();
            break;
        
        case "2":
            running = false;
            break;

        default:
            Console.WriteLine("Некоректная команда!");
        break;
    }
}