Как переименовать автоматически созданную таблицу n: m в EF 6? - PullRequest
0 голосов
/ 06 августа 2020

Я настроил базу данных с помощью EF 6. Я успешно настроил отношение «многие ко многим» с помощью кода, показанного ниже:

public class Software
{
    public string Id { get; set; }

    public string Version { get; set; }

    public string Name { get; set; }

    // Navigation property for machineSoftware
    public virtual ICollection<Machine> MachineSoftwares { get; set; }
}

public class Machine
{
    public int MachineId { get; set; }

    public string Model { get; set; }

    public string Customer { get; set; }

    public virtual ICollection<Software> MachineSoftwares { get; set; }
}

EF 6 автоматически создал третью таблицу MachineSoftwares. Пока все хорошо.

Теперь я хочу переименовать эту таблицу, но у меня нет соответствующего класса для этой таблицы, который я мог бы переименовать с помощью миграции. Итак, как мне переименовать таблицу MachineSoftwares?

Ответы [ 2 ]

3 голосов
/ 06 августа 2020

Имя неявной таблицы соединений многие-ко-многим (и имена ее столбцов) настраиваются через Map Fluent API.

Но для того, чтобы получить доступ к этому API, вы сначала необходимо сопоставить отношения с помощью пары HasMany / WithMany:

modelBuilder.Entity<Software>()
    .HasMany(e => e.MachineSoftwares)
    .WithMany(e => e.MachineSoftwares)
    .Map(config => config
        .ToTable("the_desired_table_name")
        //.MapLeftKey("SoftwareId") // in case you need different column names
        //.MapRightKey("MachineId")
    );
0 голосов
/ 03 сентября 2020

вы можете добавить атрибут таблицы в свой код, EF имеет больше параметров для атрибутов, например имя столбца:

[Table("custom_name_table")]
public class Software
{
    public string Id { get; set; }

    [Column("the_version_name")]
    public string Version { get; set; }

    public string Name { get; set; }

    // Navigation property for machineSoftware
    public virtual ICollection<Machine> MachineSoftwares { get; set; }
}

проверьте эту ссылку https://www.entityframeworktutorial.net/code-first/table-dataannotations-attribute-in-code-first.aspx

...