Cenni preliminari sul modello di ASP.NET Dynamic Data
Aggiornamento: Luglio 2008
Il modello dati rappresenta le informazioni che si trovano in un database e come gli elementi nel database sono correlati tra loro. ASP.NET Dynamic Data utilizza i modelli dati che rappresentano i dati come tipi CLR. Supporta i modelli dati LINQ to SQL e ADO.NET Entity Framework.
Tramite il modello dati è possibile controllare l'aspetto e il comportamento dei campi dati ed eseguire la convalida automatica con una quantità ridotta di codice o senza codice. È inoltre possibile personalizzare il modello dati per influire sulla convalida dei campi dati e sul rendering dell'interfaccia utente per la visualizzazione e la modifica di tali campi dati.
La comprensione e l'utilizzo del modello dati consentono di eseguire le operazioni seguenti:
Rendere più riutilizzabile il codice creando la logica relativa ai dati al livello dati anziché incorporandola al livello di presentazione.
Personalizzare la convalida dei campi dati nel livello dati.
Personalizzare l'aspetto e il comportamento dei campi dati mediante l'applicazione di metadati.
In questo argomento sono contenute le seguenti sezioni:
Informazioni di supporto
Visualizzazione e modifica dei campi dati
Convalida dei campi dati
Informazioni aggiuntive
Informazioni di supporto
Dynamic Data supporta i modelli dati LINQ to SQL e Entity Framework inclusi in NET Framework. Questi modelli contengono tipi CLR che Dynamic Data utilizza per eseguire una query sul database e per eseguire operazioni di creazione, lettura, aggiornamento ed eliminazione (CRUD). I modelli consentono di integrare con facilità le regole relative alla convalida dei dati e alla logica di business nel modello dati.
Quando si crea un nuovo progetto in Visual Studio 2008, è possibile selezionare il modello Classi LINQ to SQL o ADO.NET Entity Data Model. Questa selezione determina il tipo di modello utilizzato dal progetto, vale a dire, se utilizzare un modello LINQ to SQL o Entity Framework. Le pagine di supporto temporaneo di Dynamic Data possono supportare solo uno dei tipi di modello dati nello stesso progetto.
In fase di esecuzione, Dynamic Data estrae automaticamente le informazioni sul modello dati, ad esempio le proprietà del campo dati. Da queste informazioni, deriva come creare l'interfaccia utente per la visualizzazione e la modifica dei dati. Per eseguire il rendering dell'interfaccia utente, utilizza i modelli di campo. A tale scopo utilizza ad esempio le informazioni seguenti:
Informazioni sulle associazioni tra tabelle per visualizzare le colonne di chiave esterna e spostarsi tra di esse.
Informazioni sul tipo di dati per aggiungere la convalida per un campo dati. Ad esempio, le informazioni sulla colonna null possono essere utilizzate per determinare se è richiesto un campo dati e le informazioni sulla lunghezza possono essere utilizzate per limitare la lunghezza massima dell'input di testo dell'utente.
Per ulteriori informazioni, vedere la classe Procedura: personalizzare l'aspetto e il comportamento dei campi dati nel modello di dati.
Visualizzazione e modifica dei campi dati
Dynamic Data utilizza i metadati del modello dati per determinare automaticamente quali modelli di campo utilizzare per eseguire il rendering dell'interfaccia utente per la visualizzazione e la modifica dei campi dati. I modelli di campo sono controlli utente che Dynamic Data fornisce per visualizzare e modificare i campi dati in base ai rispettivi tipi di dati intrinseci. Per eseguire il rendering di un tipo di dati, Dynamic Data esegue una ricerca tramite il modello dati, cercando le classi alle quali è applicato l'attributo UIHintAttribute.
Se l'attributo esiste, specifica quale modello di campo utilizzare per visualizzare e modificare un particolare tipo di campo dati. Se non esiste alcun attributo, Dynamic Data cerca un modello di campo il cui nome corrisponde al tipo di campo dati. Ad esempio, per visualizzare un valore integer, Dynamic Data cerca un modello di campo denominato Integer.ascx. Per ulteriori informazioni, vedere Cenni preliminari sui modelli di campo di ASP.NET Dynamic Data.
Dynamic Data consente di personalizzare ed estendere l'interfaccia utente di cui è stato eseguito il rendering per la visualizzazione e la modifica dei campi dati. È possibile applicare le seguenti personalizzazioni:
Aggiungere metadati personalizzati ai campi dati. È possibile utilizzare gli attributi per assegnare i metadati ai campi dati per personalizzare il rendering dell'interfaccia utente per la visualizzazione e la modifica di tale campo dati. Ad esempio, è possibile utilizzare l'attributo UIHintAttribute per associare un modello di campo personalizzato a un campo dati. Per ulteriori informazioni, vedere la classe Procedura: personalizzare l'aspetto e il comportamento dei campi dati nel modello di dati.
Aggiungere informazioni di tipo non intrinseco ai tipi di campo dati. È possibile utilizzare gli attributi per assegnare un tipo a un campo dati che non deriva direttamente dall'origine dati. Ad esempio, è possibile utilizzare l'attributo DataTypeAttribute per associare un ulteriore tipo non intrinseco a un campo dati. Per ulteriori informazioni, vedere la classe Procedura: personalizzare l'aspetto e il comportamento dei campi dati per tipi di dati non intrinseci nel modello di dati.
Convalida dei campi dati
Dynamic Data supporta la convalida dei campi dati in base al modello dati che include i seguenti tipi di convalida:
Convalida dei campi obbligatori. Se un campo dati non può essere null, Dynamic Data impone che venga fornito un valore per il campo.
Convalida della lunghezza. Se un campo del database è una stringa, Dynamic Data applica la lunghezza massima del campo.
Convalida del tipo. Dynamic Data impone che il valore di input dell'utente corrisponda al tipo di dati intrinseco per un campo dati.
Dynamic Data consente di personalizzare ed estendere la convalida dei campi dati nel modo seguente:
Utilizzo degli attributi. È necessario utilizzare questo approccio quando si desidera applicare una convalida aggiuntiva a quanto già fornito da Dynamic Data e gli attributi System.ComponentModel.DataAnnotations predefiniti sono sufficienti per soddisfare le proprie esigenze.
Utilizzo di metodi di classi parziali. È possibile personalizzare la convalida e aggiungere la logica di business eseguendo l'override di metodi parziali che elaborano le modifiche apportate ai campi dati. È necessario utilizzare questo approccio quando si desidera aggiungere la logica di business comune al modello dati che non può essere gestito dagli attributi.
Per ulteriori informazioni, vedere la classe Procedura: personalizzare la convalida dei campi dati nel modello di dati.
Informazioni aggiuntive
Per ulteriori informazioni su Dynamic Data, vedere i seguenti argomenti:
Informazioni sul routing degli URL. Per ulteriori informazioni, vedere la classe Routing di ASP.NET.
Informazioni sull'utilizzo di O/R Designer in un'applicazione Web per creare classi di dati che rappresentano un database SQL Server. Per ulteriori informazioni, vedere la classe Progettazione relazionale oggetti.
Informazioni sull'utilizzo di ADO.NET Entity Data Model Designer in un'applicazione Web per creare classi di dati che rappresentano un database. Per ulteriori informazioni, vedere ADO.NET Entity Data Model Designer (Entity Designer).
Informazioni sul mapping relazionale a oggetti LINQ to SQL. Per ulteriori informazioni, vedere la classe LINQ to SQL.
Informazioni su ADO.NET Entity Framework. Per ulteriori informazioni, vedere ADO.NET Entity Framework.
Informazioni su classi e metodi parziali. Per ulteriori informazioni, vedere la classe Classi e metodi parziali (Guida per programmatori C#).
Torna all'inizio
Vedere anche
Attività
Procedura dettagliata: aggiunta di Dynamic Data a un sito Web esistente
Procedura dettagliata: aggiunta di Dynamic Data a un sito Web esistente
Concetti
Cenni preliminari sui modelli di campo di ASP.NET Dynamic Data
Cenni preliminari su ASP.NET Dynamic Data
Riferimenti
System.ComponentModel.DataAnnotations
Cronologia delle modifiche
Date |
History |
Motivo |
---|---|---|
Luglio 2008 |
Argomento aggiunto. |
Modifica di funzionalità in SP1. |