【发布时间】:2011-06-13 21:14:35
【问题描述】:
我有一些关于实体框架上下文实例管理的问题。
我的代码库由许多独立的组件/代理组成,它们都在一个进程中运行,只能通过在方便时从相应队列中读取消息来工作(只要组件准备好,它就会从队列,因此在组件级别没有并发问题)
每个组件都需要独立于其他组件与数据库进行交互。我想知道为每个组件设置上下文实例的更好方法是什么。以下是一些选项
1> 拥有所有组件使用的上下文的一个实例。 --> 我认为这是最糟糕的,因为它会产生许多并发问题?
2> 给每个组件一个独立的上下文实例。 --> 这看起来不错,但是
可以在一个进程中拥有多个上下文无关的实例,同时所有组件都在该进程中同时运行吗?
我应该为组件将要处理的每条新消息创建一个新的上下文实例,还是在组件的生命周期内保留一个上下文实例?我认为最后一个更有意义,但我更习惯于在 using{} 括号中使用上下文,我不确定在每个组件的生命周期中保持一个上下文是否对我使用它的方式有任何复杂性?
如果所有上下文都在一个进程中,我是否可以依赖乐观并发,以便两个不同的独立组件不会将相同的记录放入数据库中?
顺便说一句,我使用的是实体框架 4.1。
【问题讨论】:
标签: entity-framework events entity-framework-4