【问题标题】:Providing Connection String to EntityFramework DbContext at runtime在运行时向 EntityFramework DbContext 提供连接字符串
【发布时间】:2012-12-12 03:42:27
【问题描述】:

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

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

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

只是想补充一点:这是模型优先的方法。

感谢指点。

【问题讨论】:

    标签: entity-framework connection-string dbcontext


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回复。你能否详细说明一下。我遇到的问题是。我为 EF 生成的代码只有一个构造函数。我查看了您的链接,可能我在这里理解错误。我没有任何在构造函数中接受字符串的构造函数。
    【解决方案2】:

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

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

    例如

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-13
      • 2018-04-25
      • 2020-02-13
      • 1970-01-01
      • 2021-08-02
      相关资源
      最近更新 更多