移动Azure服务c# . net后端补丁未更新

本文关键字:补丁 更新 后端 net Azure 服务 移动 | 更新日期: 2023-09-27 18:18:24

我用c#创建了一个简单的。net后端移动azure服务。我已经启动并运行了移动服务(它目前所做的一切都是在单个表上使用普通CRUD)。我遇到的问题是补丁/更新不会像它说的那样做。我可以做所有我尝试过的事情,SELECT, INSERT, DELETE,但是我无法更新数据。

当我调试到调用UpdateAsync的代码块时,patch.GetEntity().....总是有值NULL或零或第一天的日期时间,就像它没有传递我想要更新的属性值。我唯一拥有的值就是正确的id。下面我试着去掉一些代码,我使用了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; }
}

My PATCH inside My controller:

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

同样,如果我尝试直接从浏览器运行PATCH函数,在"尝试一下"部分,我也有同样的问题,所以这是我在服务项目本身中配置错误的东西。如有任何建议,不胜感激。

谢谢,Rob

移动Azure服务c# . net后端补丁未更新

属性名必须以大写字母开头。

否则按如下所示配置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();