我正在通过从aspnet转换为aspnetcore来重建API。对于我来说,不幸的是,通常在Odata上遇到了麻烦,我不得不做出的让步之一是将一些路线迁移到OData,因为OData和标准API的混合物并不兼容于Sagger。
无论如何,一种这样的方法(剩下的最后一种)具有以下签名
[HttpPost]
public IActionResult PostChanges([FromBody] ICollection<BulkEditDTO> changeSet)
{
if (!ModelState.IsValid)
{
var error = ModelState.Values.Select(x => x.Errors).FirstOrDefault();
return BadRequest(ModelState);
}
//TODO:Get data?
}
对象
public class BulkEditDTO
{
[Key]
[DataMember]
public int Id { get; set; }
[DataMember]
public SomeDTO Changes { get; set; }
}
现在,我觉得我已经尝试了我能想到的功能,复杂类型,动作和ODataActionParamaers的每种组合-但我似乎无法解决这个问题。我什至尝试了一个简单的DTO,它具有可枚举的属性,但是遇到了“需要钥匙”的问题。
我尝试过的许多研究都将我引向了这条路:
https://github.com/OData/WebApi/issues/1873
那不是完全一样,因为那是寻找标题,而我试图使用主体。
有实际的解决方法吗?