2015-01-05 2 views
-1

Я использую 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. Вот почему я считаю, что это не дублирует.

+3

Я подозреваю, что фактическая строка, где происходит ошибка, - это когда вы получаете доступ к свойству в объекте oldItemValue. скорее всего, это null. –

+0

Вы должны посмотреть, что 'XOrDefault' возвращает как значение по умолчанию, если оно ничего не находит. –

+0

Echoing @Ahmedilyas: вам нужно увидеть, на какой строке исключение сообщает об ошибке. – IronMan84

ответ

-2

объекта не задана ссылка на экземпляр объекта

означает, что ссылка на объект является недействительным. Таким образом, ваш запрос LINQ возвращает null вместо экземпляра.

+1

Или это может быть просто одно из свойств возвращаемого объекта: null ... – user2366842

+0

true @ user2366842 – Balanikas

+0

Да, я тоже это знал. Я ищу настоящую причину. Элемент уже существует, и я уверен в этом. Просто пытаюсь написать sth как var itms = dataEntities.Items; дает исключение! –

Смежные вопросы