我有一个 POCO 工厂映射到我的数据库中的表 dbo.Plant (SQL SERVER 2014)。数据库中的某些列的数据类型为 nvarchar(max) NULL。我正在尝试使用以下代码通过 EntityTypeConfiguration 更改数据类型:
Property(x => x.PCode).HasMaxLength(25);
但是,当添加迁移(添加迁移名称)时,生成的 Up() 方法将不包含对此列的任何更改。 但是,如果我也像这样要求它:
Property(x => x.PCode).HasMaxLength(25).IsRequired();
..然后将在 Up()-方法中进行适当的更改:
AlterColumn("dbo.Plant", "PCode", c => c.String(nullable: false, maxLength: 25));
是否有可能让它只注册大小的变化而不改变可空性?
编辑:我已经设法通过直接在 Up() 和 Down() 方法中进行更改来解决这个问题,但是问题仍然存在是否有任何东西可以仅使用 EntityTypeConfiguration 自动触发此更改。
我意识到,如果将 maxlength 的值更改为不同的数字,它可能会生成适当的(正确的)迁移。 有一个类似的问题正在生成空白迁移,因为我希望它更改为该值。所以我将号码更改为不同的号码并且它确实有效。