实体框架:从数据库中删除对象后调用函数

本文关键字:对象 调用 函数 删除 框架 数据库 实体 | 更新日期: 2023-09-27 18:19:22

我目前正在做一个ASP。. NET MVC项目,允许用户将文件上传到服务器,并将它们与另一个对象关联

public class FileAttachment
{
    [Key]
    public int Id { get; set; }
    public string Title { get; set; }
    public string ContentType { get; set; }
    public string Extension { get; set; }
    [ForeignKey("Donor")]
    public int DonorId { get; set; }
    public virtual Donor Donor { get; set; }
}
public class Donor
{
    [Key]
    public int Id { get; set; }
    // .....
    public virtual List<FileAttachment> Attachments { get; set; }
}

我想知道的是,如果有一种方法来指定一个函数为实体框架执行时,捐助者或FileAttachment对象从DbSet中删除,因为附件存储在文件系统,所以我需要确保文件被删除。

实体框架:从数据库中删除对象后调用函数

数据库通常不调用应用程序来通知它们的数据更改。如果您将数据库设计为管理附件文件,而不是您的应用程序,则会容易得多。

我不知道你使用的是什么数据库,但如果你使用的是Microsoft SQL Server,你应该看看使用FileStream数据类型