私が作成したWeb API OData v4サービスがあります。Web API OData関数(TimeSpan)
var getProduction = builder.EntitySet<ProductDTO>("Products").EntityType.Collection.Function("GetProduction");
getProduction.Namespace = "ProductsService";
getProduction.ReturnsCollection<ProductionRecordDTO>();
getProduction.Parameter<DateTimeOffset>("StartDate");
getProduction.Parameter<DateTimeOffset>("EndDate");
getProduction.Parameter<TimeSpan>("SampleInterval");
:それは以下のようにODataのモデルビルダーで構成された
public IQueryable<ProductionRecordDTO> GetProduction(
[FromODataUri]DateTimeOffset startDate,
[FromODataUri]DateTimeOffset endDate,
[FromODataUri]TimeSpan sampleInterval)
:私は以下に似たODataのコントローラで定義されたシグネチャを持つのTimeSpanパラメータを持つバインド機能を作成しようとしています
モデルを実行すると、モデルが正しく作成されたように見えます。メタデータの説明には、 "SampleInterval"がEdm.Durationタイプとして適切に定義されていることが示されています。
私のようなURLでただし、このメソッドを呼び出そうと
:http://dev-pc/odata/Products/ProductsService.GetProduction(StartDate=2014-01-01T00:00:00Z, EndDate=2017-01-01T00:00:00Z, SampleInterval=P1Y)
ODataExceptionがメッセージ「SampleInterval = P1Y」でスローされ、スコープではありません。 ISO 8601のフォーマットのバリエーションごとに同じことが言えます。使用
:
- Microsoft.OData.Coreを - v6.15.0
- Microsoft.AspNet.OData - v5.9.1
提供どのような援助を大幅に理解されるであろう。