关于DbContext的两种存在方式,有什么区别

2025-05-13 20:47:36
推荐回答(2个)
回答(1):

官方的说法就是:
1、建立DBContext是一个比较消耗时间的事情,所以如果想减少每次建立连接所消耗的这段时间,(其实这个时间对大部份人来说,不长,对于性能狂来说,例外)
你可以把DBContext一直保存起来,不DISPOSE。
2、所有的方法都有优缺点的,第二种方法的缺点正好是上面说的第一种方法的优点。
那么第二种方法的优点是什么呢,简单一点说,不占用资源。
3、程序员的作用就是分清楚,或者学会在不同的应用环境下,使用不同的方式。
通常实现一种功能、应用的方式都会N种以上,有时候空间换时间,有时候时间换空间。

回答(2):

1

官方的说法就是:

1、建立DBContext是一个比较消耗时间的事情,所以如果想减少每次建立连接所消耗的这段时间,(其实这个时间对大部份人来说,不长,对于性能狂来说,例外)

你可以把DBContext一直保存起来,不DISPOSE。

2、所有的方法都有优缺点的,第二种方法的缺点正好是上面说的第一种方法的优点。

那么第二种方法的优点是什么呢,简单一点说,不占用资源。

一是ObjectContext是一种模型优先的开发模式,DbContext是代码优先的开发模式。这是两者最根本的区别。

同时两者之间可以相互转换:

下面给出转换的例子

1 DbContext转为ObjectContext

using System.Data www.hbbz08.com .Entity.Infrastructure

ObjectContext context =((IObjectContextAdapter)dbContext).ObjectContext;

2ObjectContext转为DbContext

using System.Data.Entity.Infrastructure

DbContext context =((IObjectContextAdapter)objectContext).DbContext;

二是ObjectContext包含DbContext,DbContext包含了ObjectContext的大部分方法和属性。DbContext是扩展了ObjectContext的类。

3、程序员的作用就是分清楚,或者学会在不同的应用环境下,使用不同的方式。

通常实现一种功能、应用的方式都会N种以上,有时候空间换时间,有时候时间换空间。