2012-04-05 139 views
0

我想从DbContext访问底层的数据库和连接对象,以便在库例程中运行一些SQL“旧式”。这个库例程使用DbContext,因为它可以从许多地方调用。这个工作在4.1然而,随着4.3.1我得到错误...实体框架4.3.1 DBContext连接

下面是相关的代码

using (testentities te = new testentities()) 
{ 
    var result = CallGeneric(te, some parameters); 
} 

public static Results CallGeneric(DbContext db, some parameters); 
{ 
    var connection = (SqlConnection)db.Database.Connection; 

    // do some stuff here 

} 

在EF 4.1这个工作的轮廓,我能够直接使用的连接。我使用NuGet更新到EF 4.3.1,这不再有效。关于如何到底层连接的任何想法?

+0

您能否详细说明“不再有效”部分?我只是尝试以你的方式获得连接,并为我工作。请注意,我获得的连接已关闭,因此为了“做一些事情”,我需要打开它。此外,DbContext.Database类上还有SqlQuery和ExecuteSqlCommand方法,可能对您有用。 – Pawel 2012-04-07 04:18:26

+0

问题是我自己的“DLL地狱”的小版本。原来我需要卸载EF 4.1 *然后*安装EF 4.3.1。一旦完成,一切都按预期工作。 – 2012-04-09 18:08:20

回答

0

解决方案是卸载EF 4.1,然后重新安装EF 4.3.1