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

时间:2014-11-15 09:52:43

标签: entity-framework .net-4.5

我使用Visual Studio 2013,Entity Framework 6.0。 到目前为止,我在app配置中有连接字符串,这很有效。 DB上下文是通过添加" ADO .Net实体数据模型"选项" EF设计师来自数据库" 但现在我需要将其移动到代码,因为它将取决于用户输入。

我按照这个示例连接字符串,我的数据库成功连接 http://msdn.microsoft.com/library/vstudio/bb738533

但现在我需要使用与数据库上下文的连接,而我无法完成此操作。 假设我的数据模型名为MyDB,那么我在MyDB.edmx下有MyDB.Context.cs,并且MyDBEntities类来自DbContext。

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

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

那么如何使用生成的edmx模型,但在运行时配置/打开连接?

1 个答案:

答案 0 :(得分:0)

找到它。好的,在EF 6.0中,DbContext不再有一个接受连接的构造函数,但有一个接受连接字符串。

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

public Entities(String connectString):base(connectString){}

然后直接传递连接字符串,它将工作。