2017-01-06 4 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

この動作は、MySQL Bug #74726で説明されているように、特定の制限を超えて生成されたFK名の長さに関連しています。

関連する問題