我目前正在使用Azure开发适用于Windows Phone 8.1的应用。 (根据我的经验,我不会真的向你推荐这个)。无论如何......我有多个控制器类,它们真的做同样的事情(检查我的数据库中是否存在某些内容,如果没有,则创建它)。我必须遇到的问题是Read()函数,它检查数据库是否已经存在一个条目:
public async void Read(Device device)
{
IMobileServiceTable mobileServiceTable = Connect();
MobileServiceCollection<Device, Device> devices = null;
try
{
devices = await mobileServiceTable.MobileServiceClient.GetTable<Device>().Where(d => d.Manufacturer == device.Manufacturer && d.Model == device.Model).ToCollectionAsync();
}
catch (Exception e)
{
if (_onDeviceControllerListener != null)
{
_onDeviceControllerListener.OnError(ControllerError.Error.ReadFromDatabase, e.ToString());
}
return;
}
if (_onDeviceControllerListener != null && devices != null)
{
_onDeviceControllerListener.OnRead(devices);
}
}
这个应用程序完全如何应用,但是基本上只是一个副本的oder抛出了一行NullReferenceException&#34; apps = await mobileServiceTab ...&#34;:
public async void Read(Model.App app)
{
IMobileServiceTable mobileServiceTable = Connect();
MobileServiceCollection<Model.App, Model.App> apps = null;
try {
apps = await mobileServiceTable.MobileServiceClient.GetTable<Model.App>().Where(a => a.HardwareId == app.HardwareId && a.PackageId == app.PackageId).ToCollectionAsync();
}
catch (Exception e)
{
if (_onAppControllerListener != null)
{
_onAppControllerListener.OnError(ControllerError.Error.ReadFromDatabase, e.ToString());
}
return;
}
if (_onAppControllerListener != null)
{
_onAppControllerListener.OnRead(apps);
}
}
有人知道问题是什么吗? 谢谢你的帮助
答案 0 :(得分:0)
您可以添加try ... catch块并检查“MobileServiceInvalidOperationException”异常。另请查看callstack以了解正在发生的事情。
如果您成功拨打移动服务以检索数据,小提琴跟踪也会通知您。然后,您可以确定问题是否在于如何处理代码中的数据。
再看一下您的MobileServiceContext类,并确保考虑所有属性,尤其是使用“Model.App”类的属性。 E.g
public virtual DbSet<Model.App> SomeProperty { get; set; }
希望这会有所帮助。