实体框架代码First MaxLength和FixedLegth(char vs varchar)

时间:2015-09-13 20:51:49

标签: c# mysql entity-framework-6 code-first

我有一个实体框架CodeFirst模型,我是从现有数据库创建的,我想使用DataAnnotations以不同方式修饰一些char和varchar。

char和varchar之间的区别在于Char具有固定长度而varchar具有可变长度。

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

1 个答案:

答案 0 :(得分:12)

使用流畅的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; }