EF 4.3.1 - 代码优先自动迁移 - 如何指定列宽
问题描述:
我正在尝试查找与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博客的任何示例和演练只包括基本
答
如果使用AddColumn
直接,你可以简单地使用:
AddColumn("Districts", "Code", c => c.String(maxLength: 20));
如果定义在EntityTypeConfiguration
最大长度(这是正确的做法),EF迁移会为您处理。
答
列的配置应该作为数据注释完成。要使字符串列具有特定宽度,请使用StringLengthAttribute
:
[Required] // Makes column not null
[StringLength(20)] // Makes it a nvarchar(20) instead of nvarchar(max)
public string SomeString {get;set;}