实体框架:短期上下文或应用程序上下文?

时间:2016-08-30 15:56:38

标签: c# entity-framework

我正在尝试使用我的应用程序使实体框架正常工作。我有这样的场景如下:假设我有8000个项目,每个项目有100个组件。它目前的工作方式是我急切地加载8000个项目并为每个项目延迟加载组件,因为在应用程序启动时急切加载整个程序会太慢。

据我所知,为了延迟加载工作,我需要在整个应用程序生命周期内保持上下文的活动状态。所以我有一个在启动时打开的上下文实例,在退出时关闭。我还使用它来跟踪更改并保存更改。

然而,我一直在阅读关于EF的内容,许多人建议不要采用这种方法,而是赞成在每次操作中打开和关闭上下文。我的问题是:如果我无法使用相同的上下文,您将如何处理延迟加载属性,跟踪更改以及保存更改?

此外,我已经面临问题,因为我使用不同的线程在后台加载数据或保存在后台(假设它正在保存,如果我编辑跟踪属性它会引发异常)。我通过使用FIFO队列(在特定线程上)对同一个上下文的操作修复了其中一些,但是跟踪属性不会尊重队列。

如何正确使用EF

,将会有很多帮助

0 个答案:

没有答案