Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 实体框架6.0:在代码中配置连接时如何使用edmx上下文?_Entity Framework_.net 4.5 - Fatal编程技术网

Entity framework 实体框架6.0:在代码中配置连接时如何使用edmx上下文?

Entity framework 实体框架6.0:在代码中配置连接时如何使用edmx上下文?,entity-framework,.net-4.5,Entity Framework,.net 4.5,我使用Visual Studio 2013,实体框架6.0。 到目前为止,我已经在应用程序配置中设置了连接字符串,这很有效。 DB上下文是通过添加“ADO.Net实体数据模型”和“EF designer from database”选项创建的 但现在我需要将它移到代码中,因为它将依赖于用户输入 对于连接字符串,我遵循了这个示例,并且我的DB成功地连接了 但是现在我需要使用数据库上下文的连接,我无法完成这项工作。 假设我的数据模型名为MyDB,那么我在MyDB.edmx下有MyDB.Contex

我使用Visual Studio 2013,实体框架6.0。 到目前为止,我已经在应用程序配置中设置了连接字符串,这很有效。 DB上下文是通过添加“ADO.Net实体数据模型”和“EF designer from database”选项创建的 但现在我需要将它移到代码中,因为它将依赖于用户输入

对于连接字符串,我遵循了这个示例,并且我的DB成功地连接了

但是现在我需要使用数据库上下文的连接,我无法完成这项工作。 假设我的数据模型名为MyDB,那么我在MyDB.edmx下有MyDB.Context.cs,还有从DbContext派生的MyDBEntities类

我重新创建了数据模型,但这次没有选择在app config中存储连接字符串的选项。结果中的第一个区别是MyDBEntities现在只被称为实体。为什么

我看到DbContext有一个接受EntityConnection的构造函数。 我能够使用连接创建DbContext,但它没有与MyDB.edmx下的数据类型链接。MyDBEntities(或者只是更改后的实体)没有接受EntityConnection的构造函数


那么,如何使用生成的edmx模型,但在运行时配置/打开连接呢。在EF6.0中,DbContext不再有一个接受连接的构造函数,而是有一个接受连接字符串的构造函数

只需修改生成的代码并添加以下构造函数:

公共实体(字符串connectString):基(connectString){}

然后直接传递连接字符串,它就会工作