Код Entity Framework Сначала используйте MySql - Map (a => a.ToTable (), не создавая указанное имя таблицы - PullRequest
2 голосов
/ 16 января 2012

Я пытаюсь получить код EF. Сначала я работаю с MySql 5.5.19 (Connector / Net 6.4.4), но при создании базы данных она игнорирует команду Map(a => a.ToTable() для таблицы соединения.

HasMany(t => t.AllowedAssociations).WithMany()
 .Map(a => a.ToTable("AllowedTemplateAssociations")
 .MapLeftKey("TemplateId")
 .MapRightKey("AllowedAssociationToId"));

MySql выдает ошибку, что нет таблицы с именем "templatetemplate" - где-то вдоль строки указанное мной имя было проигнорировано, и ожидается "templatetemplate". (ПРИМЕЧАНИЕ: если я изменю свой код на ToTable("templatetemplate"), он будет работать как положено)

Моя модель:

public class Template
{
    public Int32 Id { get; set; }
    [Required]
    public String Name { get; set; }

    public virtual ICollection<Template> AllowedAssociations { get; set; }
}

Моя конфигурация:

public class TemplateConfiguration : EntityTypeConfiguration<AssetTracking.Domain.Entities.Template>
{
    public TemplateConfiguration()
    {
        Property(t => t.Name).IsRequired();
        HasMany(t => t.AllowedAssociations).WithMany()
           .Map(a => a.ToTable("AllowedTemplateAssociations")
           .MapLeftKey("TemplateId").MapRightKey("AllowedAssociationToId"));}
}

Это работает как положено, если я использую SQLSERVER, таблица названа правильно.

Есть идеи? Я забыл где-нибудь конфиг?

(у меня есть modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); набор)

...