治疗颈椎病系列..而且是哪一段话.为什么看不懂.是完全不能理解.还是有歧义.
不能理解的地方在哪里.
这段话完全不能理解
给我解释解释啊
@博学多思: 问题:什么时候释放db对象?
作者要表达的论点:把db对象放到线程里.跟着线程声明周期走.线程被释放时释放db对象
论据:1.不能每次调用都放到using方法中 2.单例DB不能用.
我说这种书你别看了.一看就是没写过EF代码的人在教你怎么用EF
我这里明确的告诉你:ef上下文绝对不能放到线程里!只要查询量一大.就会内存溢出!
EF就2条路1.跟着请求声明周期.开始时创建.请求结束时释放.2.每次使用都用using包起来.
你也不旋转下图片
DB对象的使用,有一个很重要的原则就是释放资源,DB连接占用资源较大,使用using即用即释放,但是如果是一个高频,意味着每次都需要创建,这也会是很大的性能开销。于是考虑用单例模式,又有了对于多用户来说的问题
大哥,我说的是解释解释,你说的和原文一样
对面的同事问我为啥忽然就歪脖卖起了萌。我:"你走,我在看博客园"。
这段话不用仔细看了,根本不像一个正轨的教材作者写出来的风格。
在博客园里随便搜几篇关于 DbConext的文章看看,你理解得更快。
什么时候释放db对象?
==================
只创建了这个DbContext对象,此时数据库连接还没有打开,你需要释放什么?
要释放的是数据库连接对象DbConnection,它会在上下文SaveChanges的时候被打开Open,此时它才开始占用非托管的数据库连接资源(连接池里少了一个可用的连接),本次数据库操作完成后需要确保这个连接对象被及时关闭Close(回到连接池).
正常的做法是使用 using 给你创建的DbConext设定一个作用域,在离开它的作用域时,确保非托管的资源被释放。