Azure MobileService 空引用异常
Azure MobileService Null Reference Exception
我目前正在使用 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);
}
}
这个完全可以正常工作,但是基本上只是一个副本的另一个在 "apps = await mobileServiceTab...":
行抛出 NullReferenceException
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);
}
}
有人知道问题出在哪里吗?
感谢帮助
您可以添加一个 try...catch 块并检查 "MobileServiceInvalidOperationException" 异常。另请查看调用堆栈以了解发生了什么。
如果您成功调用移动服务以检索数据,提琴手跟踪也会让您知道。然后您可以确定问题是否在于您如何处理代码中的数据。
再看看您的 MobileServiceContext class 并确保所有属性都被考虑在内,尤其是使用 "Model.App" class 的属性。例如
public virtual DbSet<Model.App> SomeProperty { get; set; }
希望这对您有所帮助。
我目前正在使用 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);
}
}
这个完全可以正常工作,但是基本上只是一个副本的另一个在 "apps = await mobileServiceTab...":
行抛出 NullReferenceExceptionpublic 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);
}
}
有人知道问题出在哪里吗? 感谢帮助
您可以添加一个 try...catch 块并检查 "MobileServiceInvalidOperationException" 异常。另请查看调用堆栈以了解发生了什么。
如果您成功调用移动服务以检索数据,提琴手跟踪也会让您知道。然后您可以确定问题是否在于您如何处理代码中的数据。
再看看您的 MobileServiceContext class 并确保所有属性都被考虑在内,尤其是使用 "Model.App" class 的属性。例如
public virtual DbSet<Model.App> SomeProperty { get; set; }
希望这对您有所帮助。