Почему LINQ внезапно начал вести себя странно с подключением к БД? - PullRequest
2 голосов
/ 29 января 2010

Это странный. Внезапно, когда я создавал проекты LINQ to SQL в Visual Studio, он не создавал следующую строку в конструкторе, примерно три недели назад, когда он создавал эту строку, теперь я должен сделать это вручную. Затем, если я внесу изменения в файл dbml, он удалит его, и мне придется снова добавить его вручную. огромная боль Вот строки, о которых я говорю:

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

Я использую Visual Studio 2008 sp1.

Ответы [ 2 ]

0 голосов
/ 09 сентября 2010

Посмотрите на свойства соединения в конструкторе linq2sql, попробуйте разные параметры, пока не найдете тот, который создает, который инициализирует соединение в контексте.

Я помню, что получил это в проекте, и, насколько я помню, это было связано с тем, как вы делаете / настраиваете соединение. Я исправил это в то время, но не помню точное свойство / место.

0 голосов
/ 29 января 2010

Это известная проблема.

Вы должны реализовать своего рода фабрику для контекста БД. В противном случае вы всегда будете бороться с дизайнером и никогда не узнаете, какое соединение вы используете.

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())
 {}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...