Azure移动服务 - 插入数据 - 提供的数据类型无效

Azure移动服务 - 插入数据 - 提供的数据类型无效

问题描述:

我有一个确定的时间,但我无法确定问题源于何处。Azure移动服务 - 插入数据 - 提供的数据类型无效

我创建了一个新的Azure移动服务,并试图将一块数据插入名为Product的表中。

Product item = new Product(); 
    item.Name = "Test"; 
    Toast.makeText(MainMenu.this, "" + item.Name, toast.LENGTH_SHORT).show(); 
    mClient.getTable(Product.class).insert(item, new TableOperationCallback<Product>() { 
     public void onCompleted(Product entity, Exception exception, ServiceFilterResponse response) { 
      if (exception == null) { 
       Toast.makeText(MainMenu.this, "Success!", Toast.LENGTH_SHORT).show(); 
      } else { 
       Toast.makeText(MainMenu.this, "" + exception + "", Toast.LENGTH_SHORT).show(); 
      } 
     } 
    }); 

现在我将item =“TEST”设置为一个字符串?

public class Product { 
    public String ID; 
    public String Name; 
} 

所以我的移动业务表类设置为接受字符串和数据库是要求

USE [SQLDB] 

GO 

/****** Object: Table [dbo].[Product] Script Date: 21/08/2016 11:12:18 ******/ 
SET ANSI_NULLS ON 
GO 

SET QUOTED_IDENTIFIER ON 
GO 

SET ANSI_PADDING ON 
GO 

CREATE TABLE [dbo].[Product](
    [id] [int] IDENTITY(1,1) NOT NULL, 
    [Name] [varchar](100) NULL, 
    [thetimestamp] [datetime] NULL DEFAULT (getdate()), 
    [deleted] [bit] NULL DEFAULT ((0)), 
    [createdAt] [datetimeoffset](7) NOT NULL DEFAULT (CONVERT([datetimeoffset](7),sysutcdatetime(),(0))), 
    [updatedAt] [datetimeoffset](7) NOT NULL DEFAULT (CONVERT([datetimeoffset](7),sysutcdatetime(),(0))), 
PRIMARY KEY CLUSTERED 
(
    [id] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) 
) 

GO 

SET ANSI_PADDING OFF 
GO 

现在我完全糊涂了,为什么我的应用程序给我下面的错误:

com.microsoft.windowsazure.mobileservices.MobileServiceException: {"error":"Invalid data type provided"} 

编辑:

我还在尽管recreatin这个问题g所有通过Azure门户的表以及所有生成的列,我也尝试了VARCHAR(由Azure自动生成)和INT主键。

+0

是否使用Azure的经典Azure门户中的移动服务,还是新的Azure移动应用程序?旧的是不赞成的。 –

+0

Hiya,我在新门户中使用它。这是一个3天前开始的新项目,我从头开始设置。我可能有一些日期代码,在那里我已经从之前的项目中拉出来了吗? –

+0

有几个可能的原因 - 创建脚本缺少版本[timestamp]列 - 如果使用整数主键,则必须在表配置中指定此值 - “timetimeamp”列应为datetimeoffset(7)type - 此表是由移动应用程序后端创建的吗?它可能缺少必需的默认值和触发器 –

尝试改变你的表中的数据类型 “ID”:

[ID] [VARCHAR]

,因为在你的类 “产品” 要定义为字符串

+0

我也尝试插入作为一个整数,并给出了相同的错误。我会试一试,但我知道让移动服务创建表给出一个VARCHAR主键但使用整数更适合我,能够引用一个产品编号而不是一个巨大的字符串。我一定会尝试一下,看它是否会消除我的错误。 –