Я использую LightSwitch VS 2013 для создания приложения CRUD. Я хочу создать новый экран данных, в котором пользователь может создать копию любого старого элемента и также сможет изменить некоторые детали, чтобы легко создать новый элемент.Ссылка на объект не установлена в экземпляр объекта в LightSwitch
Я пытаюсь достичь этого сценария через локальное свойство, связанное с текстовым полем, так что пользователь записывает старый идентификатор элемента и копирует его. то поля на экране будут заполнены деталями старого элемента.
Моя проблема заключается в том, что внутри кнопки Выполненная события, я написал этот код:
ConstructionDBData dataEntities = new ConstructionDBData();
Item oldItemValue = (from Item i in dataEntities.Items
where i.Code == oldItemId
select i).SingleOrDefault();
this.ItemProperty.Name = oldItemValue.Name;
this.ItemProperty.Date = oldItemValue.Date;
//.... setting remaining properties
код дает мне исключение с сообщением «ссылка на объект не указывает на экземпляр объекта». Исключение происходит в строке, используемой для извлечения данных.
Я попробовал FirstOrDefault вместо SinglelOrDefault, но напрасно. Я также попробовал эту линию, но ничего не изменилось
Item oldItemValue = dataEntities.Items.Where<Item>(i=> i.Code == oldItemId).FirstOrDefault();
даже строка вара ITMS = dataEntities.Items; дает исключение. Я уверен, что Элементы не являются нулевыми и что элемент с этим кодом существует. Я считаю, что это не имеет ничего общего с LightSwitch. Вот почему я считаю, что это не дублирует.
Я подозреваю, что фактическая строка, где происходит ошибка, - это когда вы получаете доступ к свойству в объекте oldItemValue. скорее всего, это null. –
Вы должны посмотреть, что 'XOrDefault' возвращает как значение по умолчанию, если оно ничего не находит. –
Echoing @Ahmedilyas: вам нужно увидеть, на какой строке исключение сообщает об ошибке. – IronMan84