适用于XamarinForms的Azure移动应用程序服务InsertAsync错误

时间:2016-07-25 04:00:56

标签: azure xamarin.forms azure-sql-database azure-mobile-services

我目前正在后端使用XamarinForms和Azure Mobile应用程序构建一个跨平台的移动应用程序,我遇到了InsertAsync函数的问题。每当我调用它时,它都会成功地将数据插入到我的表中,但会立即抛出InvalidOperation异常,并显示消息“将数据类型nvarchar转换为数字时出错”。知道为什么抛出这个异常/任何可能的修复?

我的客户端模型(与服务器端表匹配):

public class Bet
{
    [PrimaryKey]
    [JsonProperty(PropertyName = "Id")]
    public string Id { get; set; }

    [JsonProperty(PropertyName = "Name")]
    public string Name { get; set; }

    [JsonProperty(PropertyName = "endDate")]
    public int endDate { get; set; }

    [JsonProperty(PropertyName = "Description")]
    public string Description { get; set; }

    [JsonProperty(PropertyName = "Payout1")]
    public string Payout1 { get; set; }

    [Version]
    [JsonProperty(PropertyName ="version")]
    public byte[] version { get; set; }

    [JsonProperty(PropertyName = "createdAt")]
    public DateTime? createdAt { get; set; }

    [JsonProperty(PropertyName = "updatedAt")]
    public DateTime? updatedAt { get; set; }

违规代码:

    public async void addBet(Bet myBet, List<UserBet> myUserBets)
    {
        IMobileServiceTable<Bet> betTable = client.GetTable<Bet>();

        myBet.ID = null;
        await betTable.InsertAsync(myBet);
    }

我的表:

名称类型IS索引

id String true

名称字符串false

endDate Number false

描述字符串false

Payout1 String false

版本版本错误

createdAt Date false

updatedAt Date false

删除布尔值

1 个答案:

答案 0 :(得分:0)

您不能说该模型是来自服务器还是客户端。看模型:

  1. 在客户端上,您不应该有已删除的列
  2. createdAt / updatedAt应该是&#34; DateTimeOffset?&#34; type(?是允许可为空)
  3. 版本应为byte [] type
  4. ID应为Id(大写问题)
  5. 如果这是服务器端模型,那么您应该从EntityData继承,而不是包括CreatedAt,UpdatedAt,ID,Deleted和Version字段。