Skip to content

[Bug] Incorrect migration is generated #4

@iikuzmychov

Description

@iikuzmychov

Let's say we have the next models:

public class Vacancy
{
    public required Guid Id { get; set; }
    public required VacancyOrigin Origin { get; set; }
}

[ComplexType]
public record VacancyOrigin
{
    public required VacancySource Source { get; init; }
    public required string ExternalId { get; init; }
}

public enum VacancySource
{
    Source1,
    Source2,
    Source3
}

and the next configurations:

internal sealed class VacancyConfiguration : IEntityTypeConfiguration<Vacancy>
{
    public void Configure(EntityTypeBuilder<Vacancy> builder)
    {
        builder.HasComplexCompositeIndex(
            vacancy => new { vacancy.Origin.Source, vacancy.Origin.ExternalId },
            isUnique: true);
    }
}

This is a result of dotnet ef migrations add ...:

public partial class AddUniqueIndexOnVacancySourceAndExternalId : Migration
{
    /// <inheritdoc />
    protected override void Up(MigrationBuilder migrationBuilder)
    {
        migrationBuilder.CreateIndex(
            name: "IX_Vacancies_Source_ExternalId",
            table: "Vacancies",
            columns: new[] { "Source", "ExternalId" },
            unique: true);
    }

    /// <inheritdoc />
    protected override void Down(MigrationBuilder migrationBuilder)
    {
        migrationBuilder.DropIndex(
            name: "IX_Vacancies_Source_ExternalId",
            table: "Vacancies");
    }
}

This migration is wrong because of incorrect column names. The columns parameter should be the next:

columns: new[] { "Origin_Source", "Origin_ExternalId" },

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions