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

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

Avataria 2 Ученик (36), открыт 1 неделю назад
"The ConnectionString property has not been initialized."
Это как???
2 ответа
Максим Искусственный Интеллект (201840) 1 неделю назад
Это значит, что ты не задал ConnectionString для соединения со своей базой данных, то есть в твоем коде не указано, с чем ты пытаешься связаться и каким образом. Например, его можно указать в конфигурационном файле или непосредственно в коде при создании твоего DbContext.
Avataria 2Ученик (36) 1 неделю назад
Если не задана строка подключения, то как могла пройти миграция БД? Ещё из консоли спокойно заполняю эту же БД.... Странно. Есть класс DbContext и там в методе CreateDbContext прописана строка подключения. Далее во ViewModel создаю экземпляр DbContext и при попытке через этот экземпляр получить данные из БД получаю эту ошибку с некорректной строкой подключения....
Максим Искусственный Интеллект (201840) Avataria 2, возможно, что у тебя в приложении есть один DbContext со строкой, а ты потом в приложении создаешь ещё один, но пустой или типа того.
Jurijus Zaksas Искусственный Интеллект (432011) 1 неделю назад
Это так, что ты в своей программе используешь кучу разных подключений к базе. Используй одно.
Avataria 2Ученик (36) 1 неделю назад
Понятно! Буду закрывать лишние подключения тогда. Скорее всего это возникло из-за того, что я кучу раз делала так: сделал миграцию, посмотрела схему, поняла, что накосячила, удалила миграцию, удалила бд с подключением к ней(а в некоторых случаях забыла эту галочку поставить).
Jurijus Zaksas Искусственный Интеллект (432011) Опиши ОДНУ СТАТИЧЕСКУЮ переменную со своим подключением и пользуйся ей везде. Подключение сделай в конструкторе, отключение - в деструкторе. Тогда у тебя все будет через одну дырку и не будет проблем с потерянными сессиями и прочей лабудой.
Avataria 2Ученик (36) 1 неделю назад
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);
}

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