我有两个实体。文件和二进制文件。文件包含文件元数据,Binary包含文件内容。我想删除文件实例时删除二进制实例。我使用以下内容:
public partial class MyEntities : Entities
{
public override int SaveChanges()
{
foreach (var entry in ChangeTracker.Entries<File>().Where(e => e.State == EntityState.Deleted))
{
entry.Reference<Binary>(i => i.FileBinary).EntityEntry.State = EntityState.Deleted;
}
return base.SaveChanges();
}
}
此代码不起作用。我的意思是二进制实例不会被删除,也没有错误。任何人都能说出原因或更好的方法吗? 感谢
答案 0 :(得分:0)
您必须添加代码的更多详细信息,例如EF类型(代码优先,模型优先,架构优先)等等。但是,如果这两个实体之间存在关联,您可以看到这一点(看起来您的实体是相关的,如果没有关系,你可以添加它):
代码优先: Entity Framework: Delete Object and its related entities
首先是模型,然后是模式: Cascading deletes