В моей базе данных есть таблица под названием Impacts, и в ней есть два форж-ключа с именами cmpt_name и cmpt_reference из Component Table.
И я хочу добавить некоторые данные в ObservableCollection, который я создал с помощью таблицы Impact. Но я не могу добавить к нему cmpt_name и cmpt_reference?
public ObservableCollection<Impact> ModelListe { get; set; }
private Impact model;
public Project_Questions_Window()
{
InitializeComponent();
ModelListe = new ObservableCollection<Impact>();
DataContext = this;
}
public void addData()
{
model = new Impact();
**model.Component.cmpt_name = comboBoxComponents.Text;**
model.impt_name = textBoxQuestion.Text;
**model.Component.cmpt_reference = comboBoxComponents.SelectedValuePath;**
ModelListe.Add(model);
}
Я получаю сообщение об ошибке в выделенной строке:
Ссылка на объект, не установленная на экземпляр объекта.
Кто-нибудь может сказать мне, как это решить, пожалуйста? Я использую базу данных модели сущностей.
1 ответ
Когда вы создаете новый экземпляр Impact
, я почти уверен, что он еще не содержит Component
. Итак, model.Component
здесь является нулевым объектом.
Я не знаю вашей бизнес-логики, но полагаю, что выходом будет выбор Component
из базы данных и заполнение поля со списком этими уже существующими компонентами. Теперь, когда вы создаете новый Impact
, вы не устанавливаете имя его компонента, а устанавливаете его свойство Compenent
:
model.Component = comboBoxComponents.SelectedValue;
Похожие вопросы
Новые вопросы
c#
C # (произносится как «резкий») - это высокоуровневый, статически типизированный язык программирования с несколькими парадигмами, разработанный Microsoft. Код C # обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, включая, среди прочего, .NET Framework, .NET Core и Xamarin. Используйте этот тег для вопросов о коде, написанном на C # или в формальной спецификации C #.
Impact class
?