我正在使用LightSwitch VS 2013来创建CRUD应用程序。我想创建一个新的数据屏幕,用户可以在其中创建任何旧项目的副本,并且还可以更改某些细节以轻松创建新项目。
我正在尝试通过绑定到文本框的本地属性来实现此方案,以便用户编写旧项ID并单击复制。然后屏幕中的字段将填充旧项目详细信息。
我的问题是在Button Executed事件中,我写了这段代码:
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();
甚至像var itms = dataEntities.Items这样的行;给出例外。我确定Items不为null,并且具有此代码的项目存在。我相信这与LightSwitch无关。为什么我认为它根本不重复。
答案 0 :(得分:-2)
对象引用未设置为对象的实例
表示对象的引用为null。所以你的LINQ显然查询返回null而不是实例。