Skip to content

Commit 86caaf3

Browse files
authored
Emit oldStored based on the old column in CSharpMigrationOperationGenerator (#38724)
1 parent 5a55884 commit 86caaf3

2 files changed

Lines changed: 32 additions & 1 deletion

File tree

‎src/EFCore.Design/Migrations/Design/CSharpMigrationOperationGenerator.cs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -640,7 +640,7 @@ protected virtual void Generate(AlterColumnOperation operation, IndentedStringBu
640640
.Append("oldComputedColumnSql: ")
641641
.Append(Code.Literal(operation.OldColumn.ComputedColumnSql));
642642

643-
if (operation.IsStored != null)
643+
if (operation.OldColumn.IsStored != null)
644644
{
645645
builder
646646
.AppendLine(",")

‎test/EFCore.Design.Tests/Migrations/Design/CSharpMigrationOperationGeneratorTest.cs‎

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -633,6 +633,37 @@ public void AlterColumnOperation_all_args()
633633
Assert.Equal("Some Collation", o.OldColumn.Collation);
634634
});
635635

636+
[Fact]
637+
public void AlterColumnOperation_computed_to_non_computed_preserves_oldStored()
638+
=> Test(
639+
new AlterColumnOperation
640+
{
641+
Name = "Id",
642+
Table = "Post",
643+
ClrType = typeof(int),
644+
OldColumn =
645+
{
646+
ComputedColumnSql = "1",
647+
IsStored = true
648+
}
649+
},
650+
"""
651+
mb.AlterColumn<int>(
652+
name: "Id",
653+
table: "Post",
654+
nullable: false,
655+
oldComputedColumnSql: "1",
656+
oldStored: true);
657+
""",
658+
o =>
659+
{
660+
Assert.Equal("Id", o.Name);
661+
Assert.Equal("Post", o.Table);
662+
Assert.Equal(typeof(int), o.ClrType);
663+
Assert.Equal("1", o.OldColumn.ComputedColumnSql);
664+
Assert.True(o.OldColumn.IsStored);
665+
});
666+
636667
[Fact]
637668
public void AlterColumnOperation_DefaultValueSql()
638669
=> Test(

0 commit comments

Comments
 (0)