首页 新闻 赞助 找找看

LINQ TO ENTITY 操作数据库写Connection.Open吗

0
[已解决问题] 解决于 2014-03-07 17:29

LINQ TO  ENTITY 实例化需要加上数据库连接的Open操作吗。

SchoolEntities entities = new SchoolEntities();

如果这个直接初始化,下面直接LINQ语句也不会有问题。

我一般习惯这样写。

            using (dbEntities db = new dbEntities())
            {
                try
                {
                    db.Connection.Open();//后面略
                }
                catch (Exception ex)
                {
                }
                finally
                {
                    db.Connection.Close();
                }
            }

就是想问下,难道LINT TO ENTITY 的数据库管理是Framework自动管理的,不用自己连接释放连接的吗?

Dhoopu的主页 Dhoopu | 初学一级 | 园豆:10
提问于:2014-03-07 16:27
< >
分享
最佳答案
0

不用。

奖励园豆:5
Launcher | 高人七级 |园豆:45045 | 2014-03-07 16:35

那Linq To Entity的连接是什么时候打开的,也没有关闭的操作,那么不是连接一堆了?

Dhoopu | 园豆:10 (初学一级) | 2014-03-07 16:44

@Dhoopu: 第一次请求的时候打开连接,dbEntities 实例 Dispose 的时候关闭连接。

Launcher | 园豆:45045 (高人七级) | 2014-03-07 16:48

@Launcher: 确认是在Dispose的时候才关闭连接吗?

dudu | 园豆:31075 (高人七级) | 2014-03-07 16:54

@dudu: 老大,求科普。这点比较迷糊。刚才同事没有操作连接串操作,所以来请教高人指教。这个到底有没有需要来手工处理链接的打开和关闭。谢谢。

Dhoopu | 园豆:10 (初学一级) | 2014-03-07 17:04

@dudu: 每次执行请求的时候也会检测一次是否需要关闭连接。Dispose 保证无论是否有未完成请求都关闭连接。当然,这里的关闭连接只是将连接放回到连接池。

Launcher | 园豆:45045 (高人七级) | 2014-03-07 17:10

@Dhoopu: 可以肯定的是不需要手动打开与关闭连接

dudu | 园豆:31075 (高人七级) | 2014-03-07 17:10

@Dhoopu: 没必要手工控制 DbConnection 的 Open 和 Close。

Launcher | 园豆:45045 (高人七级) | 2014-03-07 17:11

好的,多谢两位。那么是有个连接池,然后netframework自己控制Open Close吗?相比手工和自动的链接控制,两种有什么不同吗

Dhoopu | 园豆:10 (初学一级) | 2014-03-07 17:16

@Launcher: 嗯,应该是这样的

dudu | 园豆:31075 (高人七级) | 2014-03-07 17:17

@Dhoopu: DbConnection 的 Open 和 Close 只是将连接从池中取出或放回的操作,与数据库服务器的物理连接由连接池来控制它的生命周期。连接池每隔 2- 4 分钟清理一次连接池,对那些没有被引用且超过连接池最小大小的连接,连接池将会实际的断开这些连接。

PS:你的问题我无法回答,因为你问错了。

Launcher | 园豆:45045 (高人七级) | 2014-03-07 17:26

@Launcher: 多谢多谢。搞清楚了,醍醐灌顶。之前迷糊着,见谅见谅,哈哈.

Dhoopu | 园豆:10 (初学一级) | 2014-03-07 17:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册