Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure脱机同步-未捕获异常_Azure_Xamarin_Xamarin.forms_Offline Caching - Fatal编程技术网

Azure脱机同步-未捕获异常

Azure脱机同步-未捕获异常,azure,xamarin,xamarin.forms,offline-caching,Azure,Xamarin,Xamarin.forms,Offline Caching,我正在使用Xamarin Forms和Azure,试图在我的移动应用程序中实现离线同步,以存储机器对象的列表 在我处理脱机同步的类中,我有一个名为Initialize()的函数,用于在手机或平板电脑中设置本地数据库以进行脱机同步 public MobileServiceClient client { get; set; } IMobileServiceSyncTable<Machine> machineTable; public async Task Ini

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

在我处理脱机同步的类中,我有一个名为
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();
    }
publicmobileserviceclient客户端{get;set;}
IMobileServiceSyncTable机器表;
公共异步任务初始化()
{
如果(客户端?.SyncContext?.IsInitialized?false)
{
返回;
}
var azureUrl=”http://mycoolwebsite.azurewebsites.net";
//创建我们的客户
客户端=新的MobileServiceClient(azureUrl);
//为路径初始化数据库
var path=“mylocaldb.db”;
path=path.Combine(MobileServiceClient.DefaultDatabasePath,path);
//设置本地sqlite存储并初始化表
var store=新的MobileServiceSQLiteStore(路径);
//定义表
store.DefineTable();
//初始化SyncContext--填充本地数据库!

等待client.SyncContext.InitializeAsync(store,new MobileServiceSyncHandler());//使用时发现:

    await client.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
    machineTable = client.GetSyncTable<Machine>(); 
wait client.SyncContext.InitializeAsync(存储,新的MobileServiceSyncHandler());
machineTable=client.GetSyncTable();

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

对于脱机同步,您可以遵循adrian hall的书。