链接到实体、对象、上下文和数据库连接
本文关键字:数据库连接 上下文 对象 实体 链接 | 更新日期: 2023-09-27 18:06:06
我总是看到很多关于如何处理EF上下文的生命周期的问题,但从来没有找到一个具体的答案。
如前所述,上下文被用作单元工作,并在完成该工作时被处理。
那么,让我们假设在一个程序中,我们创建了一个类来管理所有典型的数据库任务(创建用户,更新用户,删除用户等),并且在每个任务中,我们创建了一个上下文,包装成一个使用语句(至少在我找到的所有信息上)。
那么,现在,在我们的主程序中,我们在一个函数中使用了,比如说,3或4个这样的函数。这是否意味着我们打开和关闭了四个到数据库的连接,或者EF使用池机制来重用相同的连接?
连接到DB是一个非常消耗的过程(与执行简单查询相比),当使用手动连接时,我倾向于将它们池起来重用,但是使用EF我丢失了,不知道我是否应该池上下文,池连接并使用该连接创建上下文,或者什么都不做,因为EF会照顾它。
如果所有EF实例共享相同的连接字符串,那么默认情况下它使用连接池。但是,我建议您阅读工作单元模式
http://www.asp.net/mvc/tutorials/getting-started-with-ef-5-using-mvc-4/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application http://www.codeproject.com/Articles/615499/Models-POCO-Entity-Framework-and-Data-Patterns