在运行时向EntityFramework DbContext提供连接字符串

时间:2012-12-12 03:42:27

标签: entity-framework connection-string dbcontext

我希望为Entity Framework DbContext提供连接字符串。我不想将其保存到配置文件中。

创建实例时,我不希望将连接字符串作为构造函数参数传递。我也可以在内部启动实例时设置它..比如在部分上下文类中。

在不影响设计时edmx的情况下,处理这种情况的最佳方法是什么。我用Google搜索无法得出结论性答案。

只想添加:这是模型第一种方法。

感谢指点。

2 个答案:

答案 0 :(得分:0)

我一直依赖配置文件,但你可以实现一个工厂来返回你的DbContext ...主要是为了保持一致性。 DbContext的构造函数(在EF5中)将连接字符串作为重载之一:

http://msdn.microsoft.com/en-us/library/gg679467(v=vs.103).aspx

答案 1 :(得分:0)

我有同样的问题,我仍然在寻找一个优雅的解决方案。

目前,我为实体创建了一个部分类,允许我公开base(string nameOrConnectionString)构造函数。

E.g。

public partial class MyEntities
{
    public MyEntities(bool arbitraryValue) : base("MyConnectionString") { }
}

然后在代码中我使用新的构造函数创建DBContext 例如。

using (var myEntities = new MyEntities(false))
{
    ....