实体框架数据注释设置StringLength VarChar

Ano*_*use 37 entity-framework

我在我的模型中有这个设置:

[StringLength(250)]
public string Comment { get; set; }
Run Code Online (Sandbox Code Playgroud)

在数据库中将最大长度设置为250,这很棒.

但是,当数据库人员期望varchar(250)时,它被设置为nvarchar(250).

有人可以告诉我如何将它设置为模型中的varchar而不是nvarchar?

Era*_*nga 85

使用ColumnAttribute来提供数据类型

[Column(TypeName = "VARCHAR")]
[StringLength(250)]
public string Comment { get; set; }
Run Code Online (Sandbox Code Playgroud)

或者使用流畅的API

modelBuilder.Entity<MyEntity>()
  .Property(e => e.Comment).HasColumnType("VARCHAR").HasMaxLength(250);
Run Code Online (Sandbox Code Playgroud)

  • 我浪费了一整天的时间将列详细信息设置为 [Column("ToDoItem", TypeName = "NVARCHAR(250)")],导致神秘的 EF 错误(由 EF 团队提供)。现在我意识到字符串长度完全是一个单独的属性。你至少让我又多了一天的沮丧。谢谢。 (2认同)

amd*_*md3 10

出于某种原因,这个较旧的帖子不断出现在我的搜索中......所以仅供参考,使用 EF6 Core 将其合并。上面的答案对我来说是错误的。

[Column(TypeName = "VARCHAR(250)")]
public string Comment {get;set;}
Run Code Online (Sandbox Code Playgroud)