【发布时间】:2021-11-14 03:58:01
【问题描述】:
我想创建临时托管对象并有条件地保存/丢弃它们。
共识似乎是我应该创建一个子托管对象上下文并有条件地保存/丢弃它。
在这种情况下,我如何持久化其中一个临时实体并丢弃其余实体?
【问题讨论】:
-
保存子上下文时,其中的所有对象都将持久保存到其父上下文。子托管上下文并不能真正帮助您保存一个实体并丢弃其余实体。您仍然需要删除不想保存的那些。它比使用主托管对象上下文更干净,因为它至少本地化了添加/删除效果。您无需担心某些其他代码可能会保存上下文,从而过早地提交您的更改。根据您要执行的操作,也许您可以创建许多子上下文,每个上下文都有一个对象并保存您想要保留的子上下文。
-
@Paulw11 我确实考虑过为每个元素创建一个上下文。我可能有几千个临时元素。那么这种方法可行吗?
-
您是说您可能有一千个临时对象,但您可能只想保存其中的几个?
-
如果您的模型不是那么复杂(许多关系),我会考虑为您向用户显示的对象使用结构,然后仅从所选项目创建托管对象。既然您写的是您正在下载项目,那么您可能已经有一个合适的结构。
-
最好使用结构然后 IMO