代码之家  ›  专栏  ›  技术社区  ›  James Campbell

为什么Linq突然开始用DB连接表现得很奇怪?

  •  2
  • James Campbell  · 技术社区  · 16 年前

    这是一个奇怪的。突然间,当我在Visual Studio中创建Linq to SQL项目时,它会不会在设计器中创建以下行,直到大约三周前,它曾经创建过这行,现在我必须手动创建它。然后,如果我在dbml文件中进行更改,它将删除它,我必须再次手动添加。巨大的痛苦。这是我要说的台词:

       public DataContext():
                        base(global::System.Configuration.ConfigurationManager.ConnectionString["SiteSqlServer"].ConnectionString, mappingSource)  
            {  
                OnCreated();  
            }  
    

    我正在使用Visual Studio 2008 SP1。

    2 回复  |  直到 15 年前
        1
  •  0
  •   George Polevoy    16 年前

    这是一个已知的问题。

    您必须为DB上下文实现工厂类型。否则,您将总是与设计师纠结,永远不知道您使用的是哪种连接。

    public partial class CustomDataContext {
        public static CustomDataContext Create()
        {
             return new CustomDataContext(ConfigurationManager.ConnectionStrings["CustomConnectionString"].ConnectionString);
        }
    }
    

    另一个选项是从CustomDataContext继承,并创建默认构造函数:

    public CustomDataContext : InternalCustomDataContext /* created in designer */
    {
     protected string GetCustomConnectionString() {
       return ConfigurationManager.ConnectionStrings["CustomConnectionString"].ConnectionString;
     }
     public CustomDataContext() : base(GetCustomConnectionString())
     {}
    }
    
        2
  •  0
  •   eglasius    15 年前

    查看linq2sql设计器中的连接属性,尝试不同的设置,直到找到在上下文中初始化连接的创建者。

    我记得在一个项目中收到的消息,据我所知,它与您建立/配置连接的方式有关。我当时修好了,但我不记得确切的财产/地点。