Как перенести мои таблицы из моего основного приложения asp.net на Linux - PullRequest
0 голосов
/ 01 июля 2019

Я сделал основное приложение asp.net, которое отлично работает на моей машине с Windows. Мне нужно развернуть это приложение на машине с Linux. Моя проблема возникает при переносе моих таблиц на сервер MySQL на компьютере с Linux. У меня есть машина Linux для производственных целей, и мне нужен сервер MySQL для работы с пользователями. Я создал базу данных, но когда я запускаю команду обновления базы данных dotnet ef для переноса моих таблиц в эту базу данных, я вижу следующую ошибку:

enter image description here

Моя строка подключения, используемая для подключения к моей базе данных, выглядит следующим образом:

  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=ElectransUsers;Trusted_Connection=True;MultipleActiveResultSets=true"
  },

Если я изменяю строку подключения, записывая localhost вместо localdb, я вижу следующую ошибку: enter image description here

Если я удаляю mssqllocaldb, я вижу следующую ошибку:

enter image description here И мой метод Configure в скрипте Startup.cs выглядит следующим образом:

    public void ConfigureServices(IServiceCollection services)
    {
        services.Configure<CookiePolicyOptions>(options =>
        {
            // This lambda determines whether user consent for non-essential cookies is needed for a given request.
            options.CheckConsentNeeded = context => true;
            options.MinimumSameSitePolicy = SameSiteMode.None;
        });

        services.AddDbContext<ApplicationDbContext>(options =>
            options.UseSqlServer(
                Configuration.GetConnectionString("DefaultConnection")));
        services.AddIdentity<IdentityUser, IdentityRole>()
            //.AddDefaultUI(UIFramework.Bootstrap4)
            .AddEntityFrameworkStores<ApplicationDbContext>();

        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

        services.AddSignalR();
    }

Кто-нибудь знает, что я должен изменить в строке подключения, чтобы выполнить миграцию? Спасибо.

Я изменил свою строку соединения и код:

       services.AddDbContext<DbContext>(options =>
           options.UseMySql(Configuration.GetConnectionString("MysqlConnection"),
               mySqlOptions =>
               {
                   mySqlOptions.ServerVersion(new Version(10, 1, 38), Pomelo.EntityFrameworkCore.MySql.Infrastructure.ServerType.MySql); // replace with your Server Version and Type
               }));

"MysqlConnection": "Server=localhost;Database=ElectransUsers;User=root;Password=my_password;"

Но я вижу следующую ошибку:

enter image description here

Вы знаете, что я делаю не так?

1 Ответ

1 голос
/ 02 июля 2019

Рассмотрите возможность использования провайдера соединений MySQL. Пример кода здесь.

services.AddDbContext<DbContext>(options =>
   options.UseMySql(configuration.GetConnectionString("MysqlConnection"),
       mySqlOptions =>
       {
        mySqlOptions.ServerVersion(new Version(5, 1, 73), ServerType.MySql); // replace with your Server Version and Type
       })

Моя строка подключения

 "MysqlConnection": "server=194.36.12.123;port=3306;database=database_name_here;uid=user_name_here;password=password_here"

Я использую Pomelo.EntityFrameworkCore.MySql Пакет

Вот документация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...