Соглашения о присвоении имен в сгенерированной many-many таблице с помощью кода EF4 CTP4 сначала приближаются

Учитывая следующее ПОСТЕПЕННО классы:

public class Certification {
    public int Id { get; set; }
    public virtual ICollection<Employee> CertifiedEmployees { get; set; }
}

public class Employee {
    public int Id { get; set; }
    public virtual ICollection<Certification> Certifications { get; set; }
}

При создании модели базы данных с помощью кода EF4 CTP4 первый подход действительно создает желаемую объединяющую таблицу:

CREATE TABLE [dbo].[Certifications_CertifiedEmployees](
[Certifications_Id] [int] NOT NULL,
[CertifiedEmployees_Id] [int] NOT NULL,
    ...

Однако имя таблицы и имена столбцов не идеальны, потому что они сгенерированы со связанных имен свойства класса. Я имел бы:

CREATE TABLE [dbo].[Employees_Certifications](
[Employee_Id] [int] NOT NULL,
[Certification_Id] [int] NOT NULL,
    ...

Кто-либо знает, возможно ли изменить сгенерированные имена столбцов в этом сценарии и дополнительно также изменить имя таблицы так, чтобы Сотрудники были перед Сертификациями?

Спасибо, Gary

8
задан gxclarke 14 August 2010 в 05:56
поделиться

1 ответ

Я использовал свободный API для изменения сгенерированной таблицы соединений:

modelBuilder.Entity<Employee>()
    .HasMany(e => e.Certifications)
    .WithMany(c => c.Employees)
    .Map("Employees_Certifications", (e, c) => new { 
        Employee_Id = e.Id, 
        Certification_Id = c.Id });
7
ответ дан 5 December 2019 в 11:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: