使用Xamarin Forms的简易表 - InvalidOperationException

时间:2017-05-06 15:27:54

标签: c# azure xamarin xamarin.forms azure-mobile-services

我正在使用this tutorial来将xamarin.forms应用与简易表连接起来。我无法在Azure中向数据库添加数据

  

System.InvalidOperationException

错误消息如下

  

对项目的插入操作已经在队列中。

异常发生在以下代码行中。

await usersTable.InsertAsync(data);

为了添加用户

var user = new User {  Username = "username", Password = "password" };
bool x = await AddUser(user);
  

ADDUSER

public async Task<bool> AddUser(User user)
        {
            try
            {
                await usersTable.InsertAsync(user);
                await SyncUsers();
                return true;
            }
            catch (Exception x)
            {
                await new MessageDialog(x.Message.ToString()).ShowAsync();
                return false;
            }
        }
  

SyncUsers()

public async Task SyncUsers()
        {
            await usersTable.PullAsync("users", usersTable.CreateQuery());
            await client.SyncContext.PushAsync();
        }
  

,其中

IMobileServiceSyncTable<User> usersTable;
 MobileServiceClient client = new MobileServiceClient("url");
  

初​​始化

var path = Path.Combine(MobileServiceClient.DefaultDatabasePath, "DBNAME.db");
var store = new MobileServiceSQLiteStore(path);
store.DefineTable<User>();
await client.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
usersTable = client.GetSyncTable<User>();

1 个答案:

答案 0 :(得分:2)

请检查你的表格。您可能已经添加了该项目。此外,我建议您不要为您的实体设置Id属性,因为您可能正在插入表中已存在的相同ID。这可能是异常出现的原因。

希望它有所帮助!