Procedura: definire funzioni personalizzate nel modello concettuale (Entity Framework)
È possibile definire una funzione personalizzata nel modello concettuale aggiungendo un elemento Function contenente un elemento DefiningExpression al linguaggio CSDL (Conceptual Schema Definition Language) di un file con estensione edmx. È possibile definire qualsiasi istruzione Entity SQL, comprese le istruzioni con parametri, in un elemento CommandText.
Per ulteriori informazioni, vedere DefiningExpression (CSDL) e User-Defined Functions (Entity SQL).
Definizione di una funzione personalizzata nel modello concettuale
La procedura riportata di seguito presuppone che un file con estensione edmx sia aperto nell'editor XML di Visual Studio. La procedura fornisce una struttura di alto livello per l'aggiunta di una funzione personalizzata nel modello di archiviazione. Nell'esempio che segue vengono forniti dettagli aggiuntivi sui passaggi della procedura.
Per definire una funzione personalizzata nel modello concettuale
Aggiungere un elemento Function all'elemento Schema nella sezione del contenuto del modello concettuale del file con estensione edmx.
Nota: È necessario specificare un tipo restituito per la funzione utilizzando l'attributo ReturnType. Per ulteriori informazioni, vedere Function Element (SSDL), Schema Element (SSDL) e ReturnType (CSDL).
Per ogni parametro accettato dalla funzione, aggiungere un elemento Parameter all'elemento Function.
Nota: I parametri di funzione non sono indicati da un prefisso quale @.A essi viene fatto riferimento direttamente mediante il nome nell'espressione Entity SQL che definisce la funzione.Scegliere nomi di parametro che non siano uguali ad altri identificatori che devono essere utilizzati nell'espressione Entity SQL. Per ulteriori informazioni, vedere Parameter Element (CSDL).
Aggiungere un elemento DefiningExpression al nuovo elemento Function.
Definire un'istruzione Entity SQL nell'elemento DefiningExpression.
Salvare e chiudere il file con estensione edmx.
Esempio
Di seguito è riportato un esempio di elemento Function che è possibile aggiungere all'elemento Schema nella sezione del contenuto del modello concettuale di un file con estensione edmx per definire una funzione personalizzata. Aggiungendo questo elemento Function al modello School, sarà possibile determinare da quanti anni è stato assunto un docente.
Per informazioni sull'esempio del modello School, vedere Creating the School Sample Database e Generating the School Entity Data Model.
<Function Name="YearsSince" ReturnType="Edm.Int32">
<Parameter Name="date" Type="Edm.DateTime" />
<DefiningExpression>
Year(CurrentDateTime()) - Year(date)
</DefiningExpression>
</Function>
Una volta definita una funzione nel modello concettuale, è possibile chiamarla dall'interno delle query Entity SQL nell'applicazione. Per informazioni sulla chiamata di funzioni dalle query LINQ to Entities, vedere How to: Call Functions Defined in the Conceptual Model.
Vedere anche
Attività
Procedura: aggiungere una query di definizione (Entity Framework)
Procedura: definire funzioni personalizzate nel modello di archiviazione (Entity Framework)
Concetti
ADO.NET Entity Data Model Designer
Altre risorse
Modifica manuale di un file con estensione edmx (Entity Framework)
Strumenti di ADO.NET Entity Data Model
Calling Functions in LINQ to Entities