【问题标题】:EF won't let me specify the connection stringEF 不允许我指定连接字符串
【发布时间】:2013-09-05 10:10:34
【问题描述】:

它自动生成类的方式,它不将连接字符串作为参数 - 尽管生成代码将一个传递给基类。我可以自己编辑模板,但没有更好的方法,因为我可能会重新生成模型(甚至可能删除并重新创建)并且我不希望它影响模板。

//------------------------------------------------------------------------------
// <auto-generated>
//    This code was generated from a template.
//
//    Manual changes to this file may cause unexpected behavior in your application.
//    Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

public partial class MyEntities : DbContext
{
    public MyEntities()
        : base("<Connection string>")
    {
    }
...

我使用的是数据库优先方法。一切正常,但现在我已经创建了数据库的精确副本,我需要能够在两者之间切换。

【问题讨论】:

  • 我假设您使用的是数据库优先方法?
  • 默认情况下,如果使用 DB first 方法,则连接字符串来自您的 config 文件。

标签: c# entity-framework


【解决方案1】:

您应该能够定义位于生成的类旁边的部分类(在单独的文件中)。这个分部类可以有第二个构造函数:

public partial class MyEntities : DbContext
{
    public MyEntities(string connectionstring)
        : base(connectionstring)
    {
    }
}

【讨论】:

  • 谢谢。我已经这样做了,我得到了一个UnintentionalCodeFirstException。有任何想法吗?我只是将其注释掉吗?
  • 错误信息暗示您可以将其注释掉。这里有一些很好的信息stackoverflow.com/questions/5940616/…
  • 将其注释掉,并小心地将所有实体信息包含在连接字符串中,效果很好。谢谢。
  • @qujck,这是默认的标准方式吗?它不像我升级的 EF4。
  • @IbrarMumtaz 据我了解是的 - 但我不是该主题的权威 ;-)
猜你喜欢
  • 2011-05-31
  • 1970-01-01
  • 2012-12-12
  • 2013-06-04
  • 2016-07-14
  • 2011-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多