【问题标题】:Create an NVARCHAR column in MySQL using code first?首先使用代码在 MySQL 中创建 NVARCHAR 列?
【发布时间】:2018-09-21 11:48:30
【问题描述】:

因此,与 SQL Server 不同,在 MySQL 中,以下属性会创建 LONGTEXT 类型的列:

public string Name { get; set; }

我想要一个 NVARCHAR(255) 列,所以我尝试了以下方法:

//[DataType("NVARCHAR"), StringLength(255)]     // creates a varchar(255) column.
[DataType("NVARCHAR"), MaxLength(255)]          // creates a varchar(255) column.
public string Name { get; set; }

我还使用 Fluent API 尝试了以下操作:

modelBuilder.Entity<MyEntity>()
    .Property(p => p.Name)
    .HasColumnType("NVARCHAR")
    .HasMaxLength(255);             // still creates a varchar(255) column.

..和:

modelBuilder.Entity<MyEntity>()
    .Property(p => p.Name)
    .HasColumnType("NVARCHAR(255)");

这会导致InvalidOperationException 带有以下消息:

在 MySql 中找不到存储类型“NVARCHAR(255)” 提供者清单

我做错了什么吗?使用代码优先创建 nvarchar 列的正确方法是什么?

【问题讨论】:

  • mysql 没有nvarchar 类型。
  • 你是对的,原来它只是 MySQL Workbench 中的一个别名,它使用 utf8 排序规则映射到 varchar。

标签: c# mysql .net entity-framework entity-framework-6


【解决方案1】:

MySql 没有NVARCHAR 类型。如需替代解决方案,请咨询: mysql equivalent data types

【讨论】:

  • 谢谢,我被 MySQL Workbench 中的 NVARCHAR 别名误导了。
猜你喜欢
  • 1970-01-01
  • 2020-10-08
  • 2015-02-25
  • 1970-01-01
  • 1970-01-01
  • 2018-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多