public void Initialize()
 {
     _db.Database.Migrate();
     _db.Initialize();
     IdentityInitializeAsync().Wait();
     _db.SaveChanges();
 }
示例#2
0
        public static void Main(string[] args)
        {
            var config = new ConfigurationBuilder()                 // создание объекта конфигурации приложения
                         .SetBasePath(Environment.CurrentDirectory) // указание ему рабочей директории, откуда читать файлы
                         .AddJsonFile("appsettings.json")           // указание, что мы будем использовать указанный файл в формате json
                         .Build();                                  // построение конфигурации

            // создание строителя конфигурации БД
            var db_config = new DbContextOptionsBuilder <EducationDB>();

            // указание, что мы хотим использовать sql сервер, указываем строку подключения по имени из конфигурационного файла
            db_config.UseSqlServer(config.GetConnectionString("DefaultConnection"));
            // создание контекста БД
            using (var db = new EducationDB(db_config.Options))
            {
                db.Database.EnsureCreated();            // проверяем, что БД существует (иначе создаём новую БД)

                db.Initialize();

                using (var connection = new SqlConnection(config.GetConnectionString("DefaultConnection")))
                {
                    connection.Open();
                    while (true)
                    {
                        Console.Write("Enter command >>");
                        var cmd = Console.ReadLine();

                        if (cmd?.Equals("exit", StringComparison.OrdinalIgnoreCase) == true)
                        {
                            break;
                        }
                        if (cmd is null)
                        {
                            continue;
                        }

                        if (cmd.Equals("help"))
                        {
                            PrintHelp();
                            continue;
                        }

                        if (cmd.Equals("clear") || cmd.Equals("cls"))
                        {
                            Console.Clear();
                            continue;
                        }

                        var    d_index = cmd.IndexOf(':');
                        string cmd_prefix;
                        string cmd_body;

                        if (d_index >= 0)
                        {
                            cmd_prefix = cmd.Substring(0, cmd.IndexOf(':'));
                            cmd_body   = cmd.Substring(cmd_prefix.Length + 1);
                        }
                        else
                        {
                            cmd_prefix = null;
                            cmd_body   = cmd;
                        }

                        try
                        {
                            var command = new SqlCommand(cmd_body, connection);
                            switch (cmd_prefix)
                            {
                            case "scalar":
                            {
                                var result = command.ExecuteScalar();
                                Console.WriteLine(result);
                            }
                            break;

                            case "nonquery":
                            case "nq":
                            {
                                var result = command.ExecuteNonQuery();
                                Console.WriteLine(result);
                            }
                            break;

                            case "reader":
                            case "vector":
                            default:
                            {
                                using (var reader = command.ExecuteReader())
                                {
                                    var schema = reader.GetColumnSchema();
                                    foreach (var db_column in schema)
                                    {
                                        Console.Write($"{db_column.ColumnName}   ");
                                    }

                                    Console.WriteLine();

                                    while (reader.Read())
                                    {
                                        for (var i = 0; i < schema.Count; i++)
                                        {
                                            Console.Write($"{reader[i]}| ");
                                        }

                                        Console.WriteLine();
                                    }
                                    Console.WriteLine();
                                }
                            }
                            break;
                            }
                        }
                        catch (Exception error)
                        {
                            Console.WriteLine("При выполнении команды {0} произошла ошибка:", cmd_body);
                            Console.WriteLine(error.GetType().Name);
                            Console.WriteLine(error.Message);
                            Console.WriteLine();
                        }
                    }
                }
            }
        }