首页 文章

Azure脱机同步 - 未捕获的异常

提问于
浏览
2

我正在使用Xamarin Forms和Azure,试图在我的移动应用程序中实现离线同步,以存储 Machine 对象的列表 .

在我的处理脱机同步的类中,我有一个名为 Initialize() 的函数,用于在我的手机或平板电脑中设置本地数据库,用于脱机同步

public MobileServiceClient client { get; set; }
    IMobileServiceSyncTable<Machine> machineTable;

    public async Task Initialize()
    {
        if (client?.SyncContext?.IsInitialized ?? false)
        {
            return;
        }
        var azureUrl = "http://mycoolwebsite.azurewebsites.net";

        //Create our client
        client = new MobileServiceClient(azureUrl);

        //InitialzeDatabase for path
        var path = "mylocaldb.db";
        path = Path.Combine(MobileServiceClient.DefaultDatabasePath, path);

        //setup our local sqlite store and intialize our table
        var store = new MobileServiceSQLiteStore(path);

        //Define table
        store.DefineTable<Machine>();

        //Initialize SyncContext -- Populate the local DB!
        await client.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());  //<-- EXCEPTION HERE
        machineTable = client.GetSyncTable<Machine>(); 
        // table.PurgeAsync();
    }

当我运行此代码时,我在上面突出显示的行上遇到了异常 . 我错过了什么?作为参考,我正在关注this教程 .

1 回答

  • 2

    事实证明,使用时:

    await client.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
        machineTable = client.GetSyncTable<Machine>();
    

    我需要在 Machine 对象中有一个 public string Id { get; set; } 变量,因为构建本地数据库的代码需要此字段 . 如果这被添加到某个地方的文档会很好!

相关问题