使用dotnet ef迁移创建数据库时如何设置字符集?

时间:2019-10-24 10:35:45

标签: entity-framework .net-core ef-code-first mariadb

我已将我的Connection字符串设置为使用Character Set = utf8mb4:

  "ConnectionStrings": {
    "MyDatabase": "User Id=root;Host=127.0.0.1;Port=3306;Database=my_database;Character Set=utf8mb4;Password=password;"
  }

我运行dotnet ef migrations add InitialCreate来创建数据库创建的初始迁移,但是当我运行dotnet ef database update时,数据库是用latin1字符集创建的。

1 个答案:

答案 0 :(得分:1)

DSN /连接字符串中指定的字符集指定了客户端字符集,在与服务器之间发送数据时将用于转换。

要更改服务器的默认字符集,您可以使用以下选项:

  • 在创建数据库(或表)时指定字符集: CREATE SCHEMA myschema DEFAULT CHARSET= utf8CREATE TABLE mytable (a varchar(100)) CHARSET=utf8

  • 更改当前会话的服务器字符集:SET session character_set_server=utf8

  • 通过在服务器配置文件中添加(或更改)条目character-set-server=utf8来更改服务器配置。

SET global character_set_server=utf8也可以使用,但是在服务器重新启动后,它将被设置为先前的(默认)值。

如果创建新表(未指定字符集),则将使用数据库/模式中的默认字符集。

相关问题