Ich habe folgendes Modell:Customizing OData Datetime-Ausgabe
public class PersonModel {
public int Id {get; set;}
public DateTime BirthDay {get;set;}
....
}
Wenn ein make a get Anfrage OData ein Datetime anstelle eines Datetime zurück. Zum Beispiel die Anfrage '/ api/rest/people/1' zurück:
{
id:1,
birthDay: "12/7/2016 8:57:58 PM +00:00"
....
}
Was ich will? Ich muss nur den Datumswert "12/7/2016" zurückgeben. Ich habe versucht, einen benutzerdefinierten ODataPayloadValue-Konverter zu implementieren, aber OData scheint den 'DateTime'-Typ nicht zu verstehen.
public override object ConvertToPayloadValue(object value, IEdmTypeReference edmTypeReference)
{
/// There isn't a IEdmtypeRefere.IsDateTime
/// Thus OData always think that DateTime is equals to DateTimeOffset
if (value is DateTime)
{
///Do some stuff here.
}
return base.ConvertToPayloadValue(value, edmTypeReference);
}
Vielen Dank für Ihre Antwort, aber wenn ich so implementieren, habe ich zwei Eigenschaften in meinem Modell, eine Zeichenfolge und die andere wird eine DateTime, außerdem könnte der Verbraucher der API denken, dass er/sie Werte setzen kann für die 'str Geburtsdatum ". Ich habe so etwas wie einen Ausgabefilter gedacht ... – Bruno