1
のODataのバージョン:ODataはEnum型に対してgroupbyをサポートしていますか?
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.AspNet.OData" version="5.9.1" targetFramework="net45" />
<package id="Microsoft.OData.Core" version="6.15.0" targetFramework="net45" />
<package id="Microsoft.OData.Edm" version="6.15.0" targetFramework="net45" />
<package id="Microsoft.Spatial" version="6.15.0" targetFramework="net45" />
</packages>
列挙型カラー用:
public enum Color
{
Red = 1,
Green = 2,
Blue = 3
}
Vehicleクラス:
public class Vehicle
{
public Guid VehicleId { get; set; }
[JsonConverter(typeof(StringEnumConverter))]
public Color? Color { get; set; }
}
ウェブAPIエンドポイント:
[HttpGet]
[Route("vehicles")]
public IHttpActionResult GetVehicles(ODataQueryOptions<Vehicle> options)
{
var query = dbContext.Vehicle.Select(x => new Vehicle
{
VehicleId = x.VehicleId, // guid type for x.VehicleId
Color = (Color?)x.ColorId // nullable int type for x.ColorId
});
var odataQuery = options.ApplyTo(query) as IQueryable<object>;
return Ok(odataQuery.AsEnumerable<Vehicle>());
}
シナリオ1:
$ = GROUPBY((vehicleId))を適用し、それが働いているhttp://localhost:1000/vehiclesを試してみてください?。
シナリオ2:?
しかしhttp://localhost:1000/vehiclesと$ = GROUPBY((カラー))を適用し、これはエラーメッセージ( "exceptionMessage": "引数の型が一致しない")をスローします。
私はODATA-v4を使用して同じ問題を抱えています – avrahamcool