Entity Framework Code First MaxLength 和 FixedLegth(char 与 varchar)

Entity Framework Code First MaxLength and FixedLegth (char vs varchar)

我有一个 Entity Framework 从现有数据库创建的 CodeFirst 模型,我想使用 DataAnnotations 以不同的方式装饰一些 char 和 varchar。

char和varchar的区别在于Char是定长的,varchar是变长的。

对于 Varchar,我使用 [Maxlength(length)] 对于 char,这是正确的方法还是有更好的方法来定义 class 中的字符串 属性 被映射为数据库中的一个字符?

使用流利的 api 你可以使用 IsFixedLength():

//Set StudentName column size to 50 and change datatype to nchar 
//IsFixedLength() change datatype from nvarchar to nchar
  modelBuilder.Entity<Student>()
                    .Property(p => p.StudentName)
                    .HasMaxLength(50).IsFixedLength();

使用注释,您可以指定类型:

[Column(TypeName = "char")]
[StringLength(2)]
public string MyCharField { get; set; }