C#. NET Миграции EF Невозможно привести объект типа 'System.Double' к типу 'System.Single' - PullRequest
0 голосов
/ 17 июня 2020

Было рабочее. NET Приложение Blazor с EF Core в нем. Я читал о других ошибках, включая Невозможно преобразовать объект типа 'System.Double' в тип 'System.Single' Но я не понимаю, как это применимо к функции миграции данных.

Он работает нормально, когда внутри папки миграций нет миграций. Когда я добавляю миграцию, она прерывается в строке с data.Database.Migrate();

public void Configure(IApplicationBuilder app, IWebHostEnvironment env, AppDbContext data )
    {
        data.Database.Migrate();
    }

Любые предложения?

1 Ответ

1 голос
/ 17 июня 2020

Как уже упоминал Викек, мы что-то неправильно настраивали. Проблема в том, что у нас был DbContextFactory.cs, который был жестко запрограммирован для использования SqlServer, а новый startup.cs использовал Use MySql. В основном у нас была попытка миграции использовать два разных типа серверов sql, и это давало нам эту ошибку.

Вот старый файл DBContextFactory:

public AppDbContext CreateDbContext(string[] args)
    {
        var optionsBuilder = new DbContextOptionsBuilder<AppDbContext>();
        optionsBuilder.SqlServer(@"server=mssqlserver;userid=bigboy;pwd=thesecretpasswordformssql;database=devdb;AllowPublicKeyRetrieval=True;");
        return new AppDbContext(optionsBuilder.Options);

    }

Заменено на:

public AppDbContext CreateDbContext(string[] args)
    {
        var optionsBuilder = new DbContextOptionsBuilder<AppDbContext>();
        optionsBuilder.UseMySql(@"server=mysql;userid=root;pwd=thesecretpassword;port=3306;database=devdb;sslmode=none;AllowPublicKeyRetrieval=True;");
        return new AppDbContext(optionsBuilder.Options);

    }

Файл запуска искал правильную строку mysql, но DBContextFactory .cs вызывал ошибки, потому что он не мог перенести типы mysql и ms sql вместе.

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