如何从存储库中获取新添加的实体?
我正在使用一个存储库实现,它使用与其他存储库共享的ObjectContext
。存储库保存实体的ObjectSet
。我通过 Add()
方法将新实体添加到 ObjectSet
中。在导入数据时,我想查询那些新添加的对象以防止重复数据。
ObjectContext
实现工作单元模式。在导入过程结束时,我想调用 commit 方法,该方法调用 context.SaveChange()
来保存数据。
但是,在调用 SaveChanges()
之前,我找不到一种简单的方法来查询新添加的实体。你们如何处理此类问题?
I'm using a repository implementation which is using a shared ObjectContext
with other repositories. The repository holds an ObjectSet
of the entities. I'm adding new entities via Add()
method to the ObjectSet
. While importing data I would like to query those fresh added objects to prevent duplicate data.
The ObjectContext
implements a unit of work pattern. At the end of the import process I would like to call the commit method which calls context.SaveChange()
to persist the data.
However, I couldn't find an easy way to query the freshly added entities before I called SaveChanges()
. How do you guys handle such problems?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
查询
ObjectStateManager
。Query the
ObjectStateManager
.我在 repository.cs 中使用 ObservableCollection 来获取数据,然后将其保存到数据库,如下所示,
如果您愿意,您也可以使用 ICollection,因为它是 observablecollection 的基类。
现在,您可以查询存储库,如下所示...
但是,请记住,在保存到数据库之前,您无法使用 Id 获取数据,因此请使用其他一些唯一字段来获取数据。有关更多信息,请单击下面的链接,其中我提出了类似的问题
为什么我无法从存储库获取最近添加的对象(尚未保存在数据库中)
I used ObservableCollection inside repository.cs to get the data before saving it to database as below
if you want you can also use ICollection because it is a base class for observablecollection.
Now, you can query the repository as shown below...
But, remember you cannot get data using Id's before saving to database so use some other unique field to get data. For further info click on the below link where similar kind of question was asked by me
Why I am not able to get recently added objects (yet to be saved in database) from repository