【发布时间】:2012-03-13 11:59:53
【问题描述】:
一个解决方案中有四个项目:DAL、BOL、UI 和 Model。
Model 包含 POCO 类,而 DAL 仅包含一个 DbContext 类,其中引入了模型。所有项目都引用了 Model 项目,UI 引用了 BOL,BOL 引用了 DAL。
目前的例如保存数据的方法是: 在 UI 中按下 Submit 按钮后,表单的数据存储在模型 POCO 类中,POCO 类转到 BOL 保存方法,当 BOL 实例化时,dbcontext 也实例化,save 方法使用该 dbcontext 提交更改。
问题:像这样实例化 dbcontext 是否有效?我应该做其他事情来获得更高的性能吗?我正在尝试获得尽可能高的性能,因为可能会同时将大量记录插入数据库。
【问题讨论】:
-
如果你想插入一堆记录作为一个工作单元,使用一个上下文实例是有意义的。但是,如果您指的是大规模并发(同时),则每个调用都会有自己的上下文。你说的是哪两个?
-
好吧,最好让它通用。我将为程序员在底层构建方法和类,这样他们就可以从上层调用它们来插入/更新/删除/加载数据。他们不需要担心连接、dbcontexts,......而应该只关注业务。根据您的 cmets,在 BOL 构造函数中实例化 dbcontext 是正确的,但如果程序员需要同时插入一堆记录,则应使用 BOL 的一个实例。您可以将此建议回复为帖子回复,我会将其标记为答案。
-
好的,但我认为大部分是你自己的想法和阐述,所以如果你回答自己的问题(这在 Stack Overflow 上很好)并将其标记为已接受(可能2 天后)。
标签: asp.net web-applications entity-framework-4.1 poco dbcontext