gpt4 book ai didi

entity-framework - 模型 OnDelete 事件?

转载 作者:行者123 更新时间:2023-12-02 00:18:01 27 4
gpt4 key购买 nike

我有一个看起来像这样的简单模型:

public class ImageFile
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public ImageMeta Meta { get; set; }
public string FileName { get; set; }
public DateTime DateUploaded { get; set; }
public int Width { get; set; }
public int Height { get; set; }
}

有什么方法可以添加某种“OnDelete”事件 Hook ,以便每当通过 db.Images.Remove(imageFile); 或任何其他方式删除模型时,我都可以删除相关文件?

最佳答案

您可以覆盖上下文的 SaveChanges 方法以连接以删除实体。

public class GalleryContext : DbContext
{
public override int SaveChanges()
{
var deletedImages = ChangeTracker.Entries()
.Where(e => e.State == EntityState.Deleted && e.Entity is ImageFile)
.Select(e => e.Entity).Cast<ImageFile>();

foreach(var image in deletedImages)
{
// delete file here or call a method on image
}

return base.SaveChanges();
}
}

关于entity-framework - 模型 OnDelete 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12274888/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com