如何使用 NHibernate 从数据库中自动删除?
How to make auto remove from DataBase with NHibernate?
我有一个 class,其中包含另一个 class 的列表:
public class Book
{
...
[DataMember]
public virtual IList<BookOption> Options { get; set; }
...
}
当我尝试更新我的一本书时,我也在更新选项列表中的更改记录,并且我正在添加新的记录,它们已被添加。所以一切看起来都很好。
我正在使用 NHibernate(不是流利的)。
问题是:据我了解,NHibernate 没有检测对象(BookOption)应该更新或插入数据库的问题,但是什么关于移除?
在某些情况下,一些旧的 Book 选项在更新的 Book 版本中不存在(删除)。我只需要现有的选项(在上一个版本中),所以我需要从数据库中删除不再使用的选项,而是我只向它们添加新的选项(书籍更新后旧选项仍在数据库中)。
我可以用额外的方法(特别是删除选项)来实现,但是...我想在做之前尝试别的东西。
如果对象列表中不存在记录,NHibernate 能否提供从数据库中删除记录的功能?
P.S对不起我的英语不好
nHibernate 为此目的在集合映射中提供了一个选项:cascade="all-delete-orphan"
您可以在此处阅读更多详细信息:
Cascading lifecycle
我有一个 class,其中包含另一个 class 的列表:
public class Book
{
...
[DataMember]
public virtual IList<BookOption> Options { get; set; }
...
}
当我尝试更新我的一本书时,我也在更新选项列表中的更改记录,并且我正在添加新的记录,它们已被添加。所以一切看起来都很好。 我正在使用 NHibernate(不是流利的)。
问题是:据我了解,NHibernate 没有检测对象(BookOption)应该更新或插入数据库的问题,但是什么关于移除? 在某些情况下,一些旧的 Book 选项在更新的 Book 版本中不存在(删除)。我只需要现有的选项(在上一个版本中),所以我需要从数据库中删除不再使用的选项,而是我只向它们添加新的选项(书籍更新后旧选项仍在数据库中)。
我可以用额外的方法(特别是删除选项)来实现,但是...我想在做之前尝试别的东西。
如果对象列表中不存在记录,NHibernate 能否提供从数据库中删除记录的功能?
P.S对不起我的英语不好
nHibernate 为此目的在集合映射中提供了一个选项:cascade="all-delete-orphan"
您可以在此处阅读更多详细信息: Cascading lifecycle