Я имею в виду что-то вроде этого (действие само по себе, наверное, нормально)
[HttpPost]
[ODataRoute("GenerateFromProduct")]
public async Task<IHttpActionResult> GenerateFromProduct([FromBodyAttribute] Product product)
{
if(!ModelState.IsValid)
{
return BadRequest();
}
List<string[]> combos = new List<string[]>();
List<ProductVariant> productVariants = product.GenerateProductVariants();
db.ProductVariants.AddRange(productVariants);
await db.SaveChangesAsync();
return Ok(productVariants);
}
Действие, определенное в WebApiConfig, вероятно, будет примерно таким:
builder.EntityType<ProductVariant>().Collection
.Function("GenerateFromProduct").Returns<List<ProductVariant>>().EntityParameter<Product>("product");
Но я продолжаю получать следующую ошибку (после нескольких перезаписей)
An exception of type 'System.InvalidOperationException' occurred in System.Web.OData.dll but was not handled in user code
Additional information: The path template 'GenerateFromProduct' on the action 'GenerateFromProduct' in controller 'ProductVariants' is not a valid OData path template. Resource not found for the segment
Любые идеи, что я делаю неправильно? Я не нашел много информации в Интернете об odata и пользовательских функциях / действиях, кроме тех, что есть в msdn.