2017-01-06 2 views
1

Я добавляю 2 модели, которые содержат внешний ключ. При анализе генерируемого запроса EF генерирует имя ограничения непредвиденным образом.C# Entity Framework 6 ограничение внешнего ключа в непредсказуемом формате

public class SnapAppSession 
{ 
    [Key] 
    public int Id { get; set; } 


    [MaxLength(36)] 
    public string AppUploadSessionHandle { get; set; } 

    [ForeignKey("User")] 
    public string UserId { get; set; } 

    public DateTime CreatedOn { get; set; } 


    public virtual ApplicationUser User { get; set; } 


    public virtual ICollection<SnapAppSessionsBreakdown> Breakdown { get; set; } 

} 



public class SnapAppSessionsBreakdown 
{ 
    [Key] 
    public int Id { get; set; } 


    [ForeignKey("SnapAppSession")] 
    public int SnapAppSessionId { get; set; } 

    public string FileName { get; set; } 

    public virtual SnapAppSession SnapAppSession { get; set; } 


} 

Ключом ограничение запроса иностранного, который генерируется является: SnapAppSession - (ожидаемое название FK_SnapAppSessions_AspNetUsers_UserId):

alter table `SnapAppSessions` add constraint `FK_SnapAppSessions_AspNetUsers_UserId` foreign key (`UserId`) references `AspNetUsers` (`Id`) 

SnapAppSessionsBreakdowns - (неожиданное название FK_4342715c7ab44a358f96e48e0cce132e):

alter table `SnapAppSessionsBreakdowns` add constraint `FK_4342715c7ab44a358f96e48e0cce132e` foreign key (`SnapAppSessionId`) references `SnapAppSessions` (`Id`) 

Любая причина, почему генерируемое имя происходит случайным образом? Я использую MYSQL EF, если это имеет значение.

+0

Я думаю, что это связано с генерируемой длиной имени FK, проходящей через определенный предел. – wdosanjos

ответ

1

Это поведение связано с тем, что сгенерированная длина имени FK превышает определенный предел, как описано в MySQL Bug #74726.

 Смежные вопросы

  • Нет связанных вопросов^_^