标签: entityconnection

管理EntityConnection生命周期

管理EntityContext生命周期有很多问题,

例如,在LINQ to Entities中实例化上下文

我得出的结论是,实体上下文应该被视为一个工作单元,因此不能重复使用.大.

但是在进行一些加速我的数据库访问的研究时,我遇到了这篇博文...

改善实体框架性能

该帖子称,EF文件表现不佳相对于其他框架往往是由于EntityConnection对象被每一个新的时间创建的EntityContext需要的对象.

为了测试这一点,我在Global.asax.cs Application_Start()中手动创建了一个静态EntityConnection .

然后我使用语句将我的所有上下文转换为

using( MyObjContext currContext = new MyObjeContext(globalStaticEFConnection)
{
   ....
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,到目前为止,这似乎已经加快了一点点没有任何错误.

但这样安全吗?

使用应用程序范围的静态EntityConnection是否会引入竞争条件?

最好的问候,凯文

.net c# asp.net entity-framework entityconnection

7
推荐指数
1
解决办法
7577
查看次数

为什么EntityConnection对象不包含登录密码?

我有一个使用EF CTP5的应用程序.

在这种特殊情况下,我需要降解为一些经典ADO.NET(以读取在存储过程中,其中EF不支持多个结果集).

因此,我试图使用来自对象的现有连接字符串EntityConnection,如下所示:

var ctx = (this as IObjectContextAdapter).ObjectContext;
var efCon = ((EntityConnection) (ctx.Connection)).StoreConnection;
var con = new SqlConnection(efCon.ConnectionString);
con.Open(); // exception thrown
Run Code Online (Sandbox Code Playgroud)

当我调试时,我看到ConnectionString它不包含密码,只包含数据源,用户名,数据库等.

这是一个安全的事情,为什么他们删除它?EF是否在某处隐藏密码并仅在执行存储过程时使用它?

EF连接字符串与经典ADO.NET连接字符串不同,因为它具有元数据信息.

所以看起来我将要删除我需要的连接字符串的一部分,将其放在web.config中并将其传递给存储库.

当然必须有更好的方法!

ado.net connection-string sql-server-2008 entityconnection entity-framework-ctp5

3
推荐指数
1
解决办法
358
查看次数