实体框架数据注释设置字符串长度VarChar



我的模型中有这样的设置:

[StringLength(250)]
public string Comment { get; set; }

将数据库中的最大长度设置为250,这很好。

然而,当数据库人员期望varchar(250)时,它被设置为nvarchar(250)。

谁能告诉我如何将它从模型设置为varchar而不是nvarchar?

使用ColumnAttribute指定数据类型

[Column(TypeName = "VARCHAR")]
[StringLength(250)]
public string Comment { get; set; }

或者使用fluent API

modelBuilder.Entity<MyEntity>()
  .Property(e => e.Comment).HasColumnType("VARCHAR").HasMaxLength(250);

由于某些原因,这篇旧文章一直出现在我的搜索中…所以仅供参考,使用EF6 Core是组合的。以上答案我看错了。

[Column(TypeName = "VARCHAR(250)")]
public string Comment {get;set;}

Visual Studio 2022使用。Net 6和EF Core 6,数据库首先使用-DataAnnotations参数创建以下属性

 /* Nullable column */
 [StringLength(250)]
 [Unicode(false)]
 public string? Comment { get; set; }
 /* Non-Nullable column */
 [StringLength(250)]
 [Unicode(false)]
 public string Comment { get; set; } = null!;

最新更新