2017-06-03 4 views
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": "引数の型が一致しない")をスローします。

+1

私はODATA-v4を使用して同じ問題を抱えています – avrahamcool

答えて

1

ここにodata.org からの回答があります。

enum型はプリミティブ型なので、 はgroupbyで使用できます。

これは、あなたの好みのツールセットがすでに に対応していることを保証するものではありません。

関連する問題