无法执行从Android到Azure移动服务的插入操作

时间:2014-08-28 16:35:13

标签: android azure-mobile-services

我正在尝试从Android到Azure Mobile服务执行插入操作,但没有成功。我能够从网上执行插入尝试,但不能从Android执行。我能够使用Todoitem对象执行插入,但不能使用我自己的对象。

这是数据库 enter image description here

这是我的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到此数据库的活动连接,我不确定是否拒绝更多连接

1 个答案:

答案 0 :(得分:0)

经过许多令人沮丧的时间后,我终于开始工作了。首先是星巴克的wifi连接以某种方式阻止了与Azure移动服务的连接。我通过使用手机而不是模拟器进行测试来解决这个问题。然后,要确定ZUMO服务所期望的确切表名是什么的挑战。

我正在使用.Net后端并使用EF代码首次迁移创建我的数据库

  

public DbSet(Bill)Bills {get;组; }

鉴于此上下文,当我向ZUMO发布时,创建了一个名为Bills的数据库表 Table Name Azure Mobile Service

所以我猜错(错误地)我应该从我的Android客户端调用的表名是“Bills”,结果出于某种原因,Azure Mobile将表名称视为“Bill”,这是使用的模型类创建实体框架上下文。我用网络实现了这个尝试

Azure Mobile Service Try it out

因此,对于Azure移动服务的.Net后端谨慎行事,似乎有一些需要注意的问题。