Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Если миграция Бд прошла хорошо и из консоли БД заполняется, но при получении данных в коллекцию выдает ошибку

Avataria 2 Ученик (51), на голосовании 4 месяца назад
"The ConnectionString property has not been initialized."
Это как???
Голосование за лучший ответ
Максим Искусственный Интеллект (213281) 5 месяцев назад
Это значит, что ты не задал ConnectionString для соединения со своей базой данных, то есть в твоем коде не указано, с чем ты пытаешься связаться и каким образом. Например, его можно указать в конфигурационном файле или непосредственно в коде при создании твоего DbContext.
Avataria 2Ученик (51) 5 месяцев назад
Если не задана строка подключения, то как могла пройти миграция БД? Ещё из консоли спокойно заполняю эту же БД.... Странно. Есть класс DbContext и там в методе CreateDbContext прописана строка подключения. Далее во ViewModel создаю экземпляр DbContext и при попытке через этот экземпляр получить данные из БД получаю эту ошибку с некорректной строкой подключения....
Максим Искусственный Интеллект (213281) Avataria 2, возможно, что у тебя в приложении есть один DbContext со строкой, а ты потом в приложении создаешь ещё один, но пустой или типа того.
Jurijus Zaksas Искусственный Интеллект (445776) 5 месяцев назад
Это так, что ты в своей программе используешь кучу разных подключений к базе. Используй одно.
Avataria 2Ученик (51) 5 месяцев назад
Понятно! Буду закрывать лишние подключения тогда. Скорее всего это возникло из-за того, что я кучу раз делала так: сделал миграцию, посмотрела схему, поняла, что накосячила, удалила миграцию, удалила бд с подключением к ней(а в некоторых случаях забыла эту галочку поставить).
Jurijus Zaksas Искусственный Интеллект (445776) Опиши ОДНУ СТАТИЧЕСКУЮ переменную со своим подключением и пользуйся ей везде. Подключение сделай в конструкторе, отключение - в деструкторе. Тогда у тебя все будет через одну дырку и не будет проблем с потерянными сессиями и прочей лабудой.
Avataria 2Ученик (51) 5 месяцев назад
private DB _context;
public ObservableCollection<Cat> Cats { get; set; }

public AuthorizationViewModel(DB dbcontext)
{
_context = dbcontext;
Cats = GetCats(dbcontext);
}

private ObservableCollection<Cat> GetCats(DB context)
{
return new ObservableCollection<Cat>(context.Cats);
}

я и использую одну...
Похожие вопросы