我正在尝试从Android到Azure Mobile服务执行插入操作,但没有成功。我能够从网上执行插入尝试,但不能从Android执行。我能够使用Todoitem对象执行插入,但不能使用我自己的对象。
这是数据库
这是我的Java类
public class Bill {
public String Id;
public String UserId;
public String BillName;
public double BillAmount;
public Date BillDueDate;
public Boolean Paid;
}
这是我的移动服务使用
MobileServiceTable<Bill> mBillTable = mClient.getTable("Bills", Bill.class);
Bill mBill = new Bill();
mBill.BillAmount = 33.50;
mBill.UserId = "2";
mBill.BillDueDate = new Date(System.currentTimeMillis());
mBill.BillName = "Android Phone Bill";
mBill.Paid = true;
Log.i(TAG, "Calling Insert");
mBillTable.insert(mBill, new TableOperationCallback<Bill>() {
@Override
public void onCompleted(Bill entity, Exception exception, ServiceFilterResponse response) {
Log.i(TAG, "Called insert");
if (exception == null){
Log.i(TAG, "Azure insert succeeded ID: " + entity.Id);
} else {
Log.i(TAG, "Azure insert failed again " + exception);
}
}
});
return rootView;
无论我做什么,我都会收到以下错误
Azure插入再次失败 com.microsoft.windowsazure.mobileservices.MobileServiceException: 处理请求时出错。
我做错了什么?由于某种原因,数据库显示多个连接但没有插入数据。我确实有一个从Visual Studio到此数据库的活动连接,我不确定是否拒绝更多连接
答案 0 :(得分:0)
经过许多令人沮丧的时间后,我终于开始工作了。首先是星巴克的wifi连接以某种方式阻止了与Azure移动服务的连接。我通过使用手机而不是模拟器进行测试来解决这个问题。然后,要确定ZUMO服务所期望的确切表名是什么的挑战。
我正在使用.Net后端并使用EF代码首次迁移创建我的数据库
public DbSet(Bill)Bills {get;组; }
鉴于此上下文,当我向ZUMO发布时,创建了一个名为Bills的数据库表
所以我猜错(错误地)我应该从我的Android客户端调用的表名是“Bills”,结果出于某种原因,Azure Mobile将表名称视为“Bill”,这是使用的模型类创建实体框架上下文。我用网络实现了这个尝试
因此,对于Azure移动服务的.Net后端谨慎行事,似乎有一些需要注意的问题。