我有以下EF 6.1实体:
public class Post {
public Int32 Id { get; set; }
public virtual ICollection<PostLocalized> PostsLocalized { get; set; }
}
public class PostLocalized {
public Int32 Id { get; set; }
public String Culture { get; set; }
public virtual Post Post { get; set; }
public virtual ICollection<Pack> Packs { get; set; }
}
public class Pack {
public Int32 Id { get; set; }
public virtual ICollection<File> Files { get; set; }
}
public class File {
public Int32 Id { get; set; }
public virtual Pack Pack { get; set; }
}
所以在SQL中我有以下表格,Cascade on Delete:
Post, PostLocalizaded, PostLocalized_Packs, Packs, Packs_Files, Files
注意:PostLocalized_Packs和Packs_Files是多对多关系表。
当我删除帖子时,其PostLocalized记录被删除,PostLocalized_Packs被删除。
但Packs,Packs_Files和Files不是...... 我知道Packs_Files会在我删除Packs时被删除。
问题
如果Post及其PostLocalized删除所有与之关联的PAcks和文件而不加载所有内容,特别是文件,我该怎么办呢。
谢谢你, 米格尔
答案 0 :(得分:0)
不是一个答案,也不是一个评论,但......
你说如果删除Pack,那么Pack_Files和Files也会被删除,因为级联删除。
考虑这个例子:
删除帖子 - &gt;删除与帖子相关的所有PostLocalized和PostLocalized_Pack
这也应该删除与PostLocalized_Packs相关的包,对吧?它确实如此,你有从包中删除级联 - &gt; PostLocalized_Packs。然后它将开始删除与通过级联删除删除的包相关的所有PostLocalized_Pack。
然后它会发布与PostLocalized_Packs相关的帖子,这些帖子是从Packs端的级联删除中删除的。
如果删除帖子也应该删除所有包,那么你的模型是否正确建模?