2012-03-09 113 views
3

我正在尝试查找与DbMigration和ColumnModel相关的示例或文档。 我只是想在DBMigration Up方法中指定字符串propery的宽度 E.g.EF 4.3.1 - 代码优先自动迁移 - 如何指定列宽

AddColumn("Districts", "Code", c => c.String()); 

将创建nvarchar(max) - 我想指定maxlength(20)为例。 是这个集成EntityTypeConfiguration或者我也必须手动添加

this.Property(t => t.Name).HasColumnName("Code").IsRequired().HasMaxLength(20); 

MSDN帮助并不会给EF4博客的任何示例和演练只包括基本

回答

4

如果使用AddColumn直接,你可以简单地使用:

AddColumn("Districts", "Code", c => c.String(maxLength: 20)); 

如果定义在EntityTypeConfiguration最大长度(这是正确的做法),EF迁移会为您处理。

3

列的配置应该作为数据注释完成。要使字符串列具有特定宽度,请使用StringLengthAttribute

[Required] // Makes column not null 
[StringLength(20)] // Makes it a nvarchar(20) instead of nvarchar(max) 
public string SomeString {get;set;}