J'essaie de suivre ce tutoriel pour créer un service OData. Je suis à la recherche à ce sujet sur les propriétés de navigation:OData Obsolète Code
Il semble que certains de ce code est obsolète (l'article est à partir de 2014, mais je suis en utilisant Visual Studio 2017).
J'ai tout à fait quelques soulignements rouges sur ma classe Helper:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Web.Http.Routing;
using System.Web.OData.Extensions;
using System.Web.OData.Routing;
using Microsoft.OData;
using Microsoft.OData.UriParser;
namespace ProductService
{
public static class Helpers
{
public static TKey GetFromUri<TKey>(HttpRequestMessage request, Uri uri)
{
if(uri == null)
throw new ArgumentException("uri");
var urlHelper = request.GetUrlHelper() ?? new UrlHelper(request);
string serviceRoot = urlHelper.CreateODataLink(
request.ODataProperties().RouteName,
request.ODataProperties().PathHandler, new List<ODataPathSegment>());
var odataPath = request.ODataProperties().PathHandler.Parse(
request.ODataProperties().Model,
serviceRoot, uri.LocalPath);
var keySegment = odataPath.Segments.OfType<KeyValuePathSegment>()
.FirstOrDefault();
if (keySegment == null)
throw new InvalidOperationException("The link does not contain a key.");
var value = ODataUriUtils.ConvertFromUriLiteral(keySegment.Value,
ODataVersion.V4);
return (TKey)value;
}
}
}
J'ai des problèmes avec trois morceaux de code sur cette classe:
request.ODataProperties().PathHandler
et
request.ODataProperties().Model
J'ai des erreurs:
« HttpRequestMessageProperties » ne contient pas une définition pour « PathHandler » et aucune méthode d'extension ...
Il est également incapable de trouver le KeyValuePathSegment classe.
Existe-t-il un moyen de réécrire cette classe pour la garder à jour?