首先使用代码在 MySQL 中创建一个 NVARCHAR 列?

Ahm*_*eed 5 .net c# mysql entity-framework entity-framework-6

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

public string Name { get; set; }
Run Code Online (Sandbox Code Playgroud)

我想要一个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; }
Run Code Online (Sandbox Code Playgroud)

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

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

..和:

modelBuilder.Entity<MyEntity>()
    .Property(p => p.Name)
    .HasColumnType("NVARCHAR(255)");
Run Code Online (Sandbox Code Playgroud)

这会导致出现InvalidOperationException以下消息:

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

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

met*_*ta4 3

MySql 没有NVARCHAR类型。对于替代解决方案,请参阅: mysql 等效数据类型

  • 谢谢,我被 MySQL Workbench 中的“NVARCHAR”别名误导了。 (2认同)