如何使用 Entity Framework 6 Code First 更改现有列的大小

问题描述 投票:0回答:1

我有一个 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 自动触发此更改。

c# entity-framework fluent
1个回答
0
投票

我意识到,如果将 maxlength 的值更改为不同的数字,它可能会生成适当的(正确的)迁移。 有一个类似的问题正在生成空白迁移,因为我希望它更改为该值。所以我将号码更改为不同的号码并且它确实有效。

© www.soinside.com 2019 - 2024. All rights reserved.