EF 4.3.1 - 代码首次自动迁移 - 如何指定列宽

时间:2012-03-09 17:39:52

标签: ef-migrations entity-framework-4.3

我正在尝试查找与DbMigration和ColumnModel相关的示例或文档。 我只想在DBMigration Up方法中指定字符串的宽度 例如。

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

将创建nvarchar(max) - 我想指定maxlength(20)。 这是与EntityTypeConfiguration集成还是我必须手动添加

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

MSDN帮助没有提供任何示例和演练ef4博客仅涵盖基础知识

2 个答案:

答案 0 :(得分:4)

如果直接使用AddColumn,您只需使用:

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

如果您在EntityTypeConfiguration中定义最大长度(这是正确的方法),EF Migration将为您处理。

答案 1 :(得分:3)

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

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