Ключевое слово не поддерживается: ошибка 'ID пользователя' - PullRequest
0 голосов
/ 18 мая 2018

Я клонировал этот исходный код (https://code.msdn.microsoft.com/Onion-Architecture-In-9c58c06d). Я использую mysql и строку подключения

  "ConnectionStrings": {
    "DefaultConnection": "server=localhost;userid=root;pwd=root;port=3306;database=ddd;sslmode=none;"
  },

В консоли диспетчера пакетов команда Add-Migration FirstMigration прошла успешно, однако Update-Database - этобросает меня

System.ArgumentException: Keyword not supported: 'userid'.
   at System.Data.Common.DbConnectionOptions.ParseInternal(Dictionary`2 parsetable, String connectionString, Boolean buildChain, Dictionary`2 synonyms)
   at System.Data.Common.DbConnectionOptions..ctor(String connectionString, Dictionary`2 synonyms)
   at System.Data.SqlClient.SqlConnectionString..ctor(String connectionString)
   at System.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions(String connectionString, DbConnectionOptions previous)
   at System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(DbConnectionPoolKey key, DbConnectionPoolGroupOptions poolOptions, DbConnectionOptions& userConnectionOptions)
   at System.Data.SqlClient.SqlConnection.ConnectionString_Set(DbConnectionPoolKey key)
   at System.Data.SqlClient.SqlConnection.set_ConnectionString(String value)
   at Microsoft.EntityFrameworkCore.Storage.Internal.SqlServerConnection.CreateDbConnection()
   at Microsoft.EntityFrameworkCore.Internal.LazyRef`1.get_Value()
   at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
   at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.<>c__DisplayClass0_1.<.ctor>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
Keyword not supported: 'userid'.

Я что-то не так делаю?

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Код, на который вы ссылаетесь, использует MsSQL.Если вы хотите использовать mysql, вам нужно изменить код.

В ссылочном коде есть класс с именем Startup.cs.

В методе public void ConfigureServices(IServiceCollection services) есть строкачто вам нужно изменить.

В настоящее время в строке указано:

services.AddDbContext<ApplicationContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

Вкратце: добавьте DbContext типа ApplicationContext в коллекцию сервисов.Чтобы создать экземпляр, используйте следующие параметры:

UseSqlServer со строкой подключения с именем DefaultConnection

Вам необходимо изменить эти параметры, чтобы отразить mysql.


Возможное решение

  1. Установить пакет MySql.Data.EntityFrameworkCore
  2. Измените строку на:
services.AddDbContext(options => options.UseMySQL(Configuration.GetConnectionString("DefaultConnection")));
0 голосов
/ 18 мая 2018

Это недопустимая строка подключения для SQL Server.userid должно быть User ID и pwd должно быть Password.Например

Server=servername\instancename;Database=dbname;User Id=username;Password=password;

Дополнительные примеры см .: https://www.connectionstrings.com/sql-server/

...