移动Azure服务C#.NET后端PATCH未更新

时间:2014-08-17 02:50:27

标签: c# .net azure mobile patch

我在C#中创建了一个简单的.NET后端移动天蓝色服务。我启动并运行了移动服务(它目前所做的一切都是在一张桌子上使用普通的CRUD)。我遇到的问题是PATCH / UPDATE不能像它说的那样做。我可以做我尝试过的所有其他事情,SELECT,INSERT,DELETE,但我一直无法更新数据。

当我调试调用UpdateAsync的代码块时,patch.GetEntity().....总是有值NULL或清零或第一天的日期时间,就像它没有传递属性一样我试图更新的价值。我唯一的价值就是正确的身份证。下面我试图删除我的一些代码,我使用了Azure网站上的前几个教程中的一些内容。

我有一个数据对象:

public class AdminLookupDATA: EntityData
{
    public string description { get; set; }
    public int lookuptype { get; set; }
    public int priority { get; set; }
    public bool inactive { get; set; }
    public DateTime createdate { get; set; }
    public DateTime editdate { get; set; }
}

我有一个DTO:

public class AdminLookupDTO
{
    public string id { get; set; }
    public string description { get; set; }
    public int lookuptype { get; set; }
    public int priority { get; set; }
    public bool inactive { get; set; }
    public DateTime createdate { get; set; }
    public DateTime editdate { get; set; }
}

我有一个模特:

public class AdminLookupModel
{
    public string Id { get; set; }
    public string description { get; set; }
    public int lookuptype { get; set; }
    public int priority { get; set; }
    public bool inactive { get; set; }
    public DateTime createdate { get; set; }
    public DateTime editdate { get; set; }
}

我的控制器内的我的补丁:

    public Task<AdminLookupDATA> PatchAdminLookupDATA(string id, Delta<AdminLookupDATA> patch)
    {
         return UpdateAsync(id, patch);
    }

另外,如果我尝试直接从浏览器中运行PATCH功能,我会遇到同样的问题。试试看#34;部分,所以我在服务项目本身配置错误。任何建议都将不胜感激。

谢谢, 罗布

1 个答案:

答案 0 :(得分:0)

您的商标名称必须以大写字母开头。

否则按照此处的说明配置CamelCasePropertyNamesContractResolver:

http://odetocode.com/blogs/scott/archive/2013/03/25/asp-net-webapi-tip-3-camelcasing-json.aspx

代码段

var formatters = GlobalConfiguration.Configuration.Formatters;
var jsonFormatter = formatters.JsonFormatter;
var settings = jsonFormatter.SerializerSettings;
settings.Formatting = Formatting.Indented;
settings.ContractResolver = new CamelCasePropertyNamesContractResolver();