Я пытаюсь получить код 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>();
набор)