Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
I dati restituiti nella risposta di ADO.NET Data Services a volte possono essere di grandi dimensioni. Per la conservazione della larghezza di banda o dei cicli della CPU, un servizio dati potrebbe non restituire la risposta completa a una richiesta. In ADO.NET Data Services può essere rinviato l'invio di qualsiasi sezione di una risposta; è probabile che venga rinviata la serializzazione delle proprietà di navigazione o dei valori di proprietà di grandi dimensioni, quali BLOB o immagini.
Nell'esempio seguente viene illustrato come indicare un contenuto posticipato che utilizza la serializzazione JSON in ADO.NET Data Services. Quando sono presenti due tipi di entità, ad esempio Customer e Order, in cui un cliente singolo viene associato a molti ordini, la serializzazione predefinita di un'entità Customer è la seguente:
{ "d":
{
__metadata: {
uri: "Customers(\'NTSOS\')", type: "NorthwindModel.Customers"
}, CustomerID: "NTSOS", CompanyName: "Contoso Ltd",
Address: "1010 Street", Orders: {
__deferred: {
uri: "Customers(\'NTSOS\')/Orders"
}
}
}
}
La proprietà __deferred di questo esempio indica che i valori degli elementi Order non vengono restituiti. Per recuperare i valori, è necessario eseguire una richiesta GET direttamente a Customers(\'NTSOS\')/Orders.
Regole di contenuto posticipato in JSON
Le regole seguenti determinano l'utilizzo di contenuto posticipato in ADO.NET Data Services con la serializzazione JSON:
Il contenuto della proprietà annotato dal comando
__deferrednon viene restituito nella serializzazione. Il richiedente può recuperare il contenuto eseguendo una richiestaGETsull'elemento padre. Il richiedente può inoltre includere l'opzione query$expandper evitare il rinvio. Per ulteriori informazioni, vedere Opzioni query del sistema ADO.NET Data Services.La proprietà
__deferrednon deve essere una proprietà dell'oggetto più esterno a meno che l'oggetto più esterno non contenga altre proprietà.La proprietà
__deferrednon implica la presenza di contenuto posticipato; indica che il contenuto possibile non è stato ancora valutato o serializzato.Per impostazione predefinita, in ADO.NET Data Services viene posticipata la serializzazione dei tipi di dati seguenti:
Valori della proprietà di navigazione.
Valori di collegamento.
Valori di proprietà di tipo
Edm.Binary.
I valori di proprietà di tipo
EdmType.Binarynon possono essere posticipati.
Esempi
Nell'esempio seguente viene illustrata la serializzazione JSON di un set di entità Customers vuoto:
{ "d": [ ] }
Nell'esempio seguente viene illustrata la serializzazione JSON di un set di entità Customers che contiene due istanze del tipo di entità denominato Customer. Gli ordini correlati a Customers non vengono espansi inline, che è il comportamento predefinito.
{ "d": [
{
__metadata: {
uri: "Customers(\'NTSOS\')", type: "NorthwindModel.Customer"
},
CustomerID: "NTSOS",
CompanyName: "Contoso Ltd",
Address: "1010 Street",
Orders: {
__deferred: {
uri: "Customers(NTSOS)/Orders"
}
}
},
{
__metadata: {
uri: "Customers(FABRK)", type: "NorthwindModel.Customer"
},
CustomerID: "FABRK",
CompanyName: "Fabrikam Inc",
"2020 Street",
Orders: {
__deferred: {
uri: "Customers(\'FABRK\')/Orders"
}
},
}
]
}
Nell'esempio seguente viene illustrata la serializzazione JSON di un tipo di entità Customer che contiene tutti i tipi di entità Orders correlati con serializzazione inline.
{ "d":
{
__metadata: {
uri: "Customers(NTSOS)", type: "NorthwindModel.Customer"
},
CustomerID: "NTSOS",
CompanyName: "Contoso Ltd",
Address: "1010 Street",
Orders: [
{
__metadata: {
uri: "Customers(NTSOS)/Orders",
type: "NorthwindModel.Order"
},
ShippedDate: "\/Date(1202321)\/",
ShipAddress: "1010 Street",
Customers: {
__deferred: {
Uri: "Customers(\'NTSOS\')/Orders/Customers"
}
}
]
}
}
Nell'esempio seguente viene illustrata la serializzazione JSON di una singola istanza del tipo di entità Customer, che dispone di una stringa vuota come nome dell'azienda e la cui proprietà address è null:
{ "d":
{
__metadata: {
uri: "Customers(NTSOS)", type: "NorthwindModel.Customer"
},
CustomerID: "NTSOS",
CompanyName: "Contoso Ltd",
Address: null,
Orders: {
__deferred: {
uri: "Customers(NTSOS)/Orders"
}
}
}
}
Nell'esempio seguente viene illustrata la serializzazione JSON della proprietà CustomerID su un tipo di entità Customer, in cui il tipo della proprietà è una stringa e il valore è NTSOS:
"NTSOS"
Questo esempio è identico all'esempio JSON precedente, con l'eccezione che viene richiesta la serializzazione del valore senza metadati aggiuntivi; non esistono markup JSON circostanti.
NTSOS
Vedere anche
Concetti
Regole di serializzazione JSON (framework di ADO.NET Data Services)
Formato JSON (framework di ADO.NET Data Services)
Applicazioni client di ADO.NET Data Services