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

回答