2011-05-10 46 views
15

我正在将练习Entity Framework代码升级到v4.1。在旧版本中,我有我的上下文类派生自ObjectContext,但随着新版本的EF 4.1,他们提供了一个很好的DbContext API。使用DbContext访问连接属性

我基本上试图转换代码,以便它从数据库优先的方法到代码优先的方法。与EF 4.1

在旧的代码打转转,我有这样的事情

context.Connection.BeginTransaction(isolationLevel); 

文意类型从ObjectContext的推导。

在v4.1中,我无法访问上下文中的Connection属性。我怎样才能做到这一点?

回答

39

它在的DbContext,它应该是公开的。

dbContext.Database.Connection.ConnectionString 

也:

dbContext.Database.Connection.BeginTransaction(isolationLevel) 
1

您可以使用类似

((IObjectContextAdapter)context).ObjectContext.Connection.BeginTransaction(isolationLevel); 
3

新的DbContext有

context.Database.Connection.BeginTransaction() 

方法有一些重载。在Visual Studio中执行转到定义以查看方法。