C# Swashback.OData中OData函数的复杂类型参数
我有OData功能:C# Swashback.OData中OData函数的复杂类型参数,c#,.net,odata,swagger,swashbuckle,C#,.net,Odata,Swagger,Swashbuckle,我有OData功能: public class ItemsController : ODataController { [HttpGet] public async Task<IHttpActionResult> SomeFunc([FromODataUri]SomethingDTO something) { return Ok(1); } } 和ODataConfig: public static class WebApiConfi
public class ItemsController : ODataController
{
[HttpGet]
public async Task<IHttpActionResult> SomeFunc([FromODataUri]SomethingDTO something)
{
return Ok(1);
}
}
和ODataConfig:
public static class WebApiConfig
{
public static void Configure(HttpConfiguration config)
{
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.EnableLowerCamelCase();
builder.EntitySet<Item>("Items");
var itemsEntityType = builder.EntitySet<Item>("Items").EntityType;
var func = itemsEntityType.Collection.Function("SomeFunc");
func.Parameter<SomethingDTO>("something");
func.Returns<int>();
config.MapODataServiceRoute("odata", "odata", builder.GetEdmModel());
}
}
公共静态类WebApiConfig
{
公共静态无效配置(HttpConfiguration配置)
{
ODataConventionModelBuilder=新ODataConventionModelBuilder();
builder.EnableLowerCamelCase();
建造商实体集(“项目”);
var itemsEntityType=builder.EntitySet(“Items”).EntityType;
var func=itemsEntityType.Collection.Function(“SomeFunc”);
函数参数(“某物”);
func.Returns();
config.MapODataServiceRoute(“odata”,“odata”,builder.GetEdmModel());
}
}
这很好,但当我打开swagger页面时,应用程序抛出异常:Swashback.OData.dll中发生了类型为“System.ArgumentOutOfRangeException”的异常,但未在用户代码中处理
参数名称:TypeKind
当我删除这个字符串函数参数(“某物”)代码>从OData配置中,Swagger页面可以正常工作。但OData功能出现故障
如何在swashback.OData中定义OData函数的复杂参数
.NET 4.5.2
Microsoft.AspNet.OData version=“6.0.0”
Swashback version=“5.6.0”
Swashback.Core version=“5.6.0”
Swashback.OData version=“3.5.0”与我的问题相同,但我使用的是Microsoft.Aspnet.OData 7.1.0、Swashback.Core 5.6.0 Swashback.OData 3.5.0
public static class WebApiConfig
{
public static void Configure(HttpConfiguration config)
{
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.EnableLowerCamelCase();
builder.EntitySet<Item>("Items");
var itemsEntityType = builder.EntitySet<Item>("Items").EntityType;
var func = itemsEntityType.Collection.Function("SomeFunc");
func.Parameter<SomethingDTO>("something");
func.Returns<int>();
config.MapODataServiceRoute("odata", "odata", builder.GetEdmModel());
}
}