微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

迁移不适用于所有外键的 ON CASCADE DELETE 行为

如何解决迁移不适用于所有外键的 ON CASCADE DELETE 行为

我正在使用 Entity Framework Core 5 并且我正在测试表关系。 使用这两个类作为实体

public class Absenta
{
    public int id { get; set; }
    public DateTime dataAbsemta { get; set; }
    public bool Motivata { get; set; }

    public string UserID { get; set; }
    public ApplicationUser User { get; set; }

    public int TrainingID { get; set; }
    public Training Training { get; set; }
}

public class Training
{
    public int TrainingID { get; set; }

    [displayName("Training")]
    public string Name { get; set; }

    public string FilePath { get; set; }

    [displayName("Clasa")]
    public string NumeClasa { get; set; }

    [displayName("Sala")]
    public string NumeSala { get; set; }

    [displayName("Data incepere : ")]
    [DataType(DataType.Date)]
    public DateTime DataInceput { get; set; }

    [displayName("Data sfarsit  : ")]
    [DataType(DataType.Date)]
    public DateTime DataSfarsit { get; set; }

    public ICollection<Absenta> absente { get; set; }
}

这是生成查询

CONSTRAINT [PK_Absente] 
    PRIMARY KEY CLUSTERED ([id] ASC),CONSTRAINT [FK_Absente_AspNetUsers_UserID] 
    FOREIGN KEY ([UserID]) REFERENCES [dbo].[AspNetUsers] ([Id]),CONSTRAINT [FK_Absente_Traininguri_TrainingID] 
    FOREIGN KEY ([TrainingID]) REFERENCES [dbo].[Traininguri] ([TrainingID]) 
            ON DELETE CASCADE

迁移工作完美,创建了表和外键,但对于 UserID 外键,它认不应用 ON DELETE CASCADE 行为。

有什么方法可以将其设置为类的认值?我试图避免为每个表手动设置它。

解决方法

想出了解决办法。 您所要做的就是使用 [Required] 数据注释:

[Required]
public string UserID { get; set; }

public ApplicationUser User { get; set; }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。