Procedura: utilizzare un modello definito in una libreria di classi
In questo argomento viene descritto come utilizzare un modello EDM (Entity Data Model) in un progetto quando tale modello è definito in un progetto Libreria di classi di Visual Studio 2008.
Nella prima procedura di questo argomento viene descritto come utilizzare un modello EDM definito in una libreria di classi da progetti diversi dai progetti Sito Web ASP.NET. Nella seconda procedura viene descritto come utilizzare un modello EDM definito in una libreria di classi da un progetto Sito Web ASP.NET.
Per utilizzare un modello EDM definito in una libreria di classi da progetti diversi dai progetti Sito Web ASP.NET
In Visual Studio creare un progetto Libreria di classi di Visual C# o Visual Basic.
Per informazioni sulla creazione di progetti in Visual Studio, vedere Procedura: creare soluzioni e progetti.
Aggiungere un modello EDM al progetto Libreria di classi.
Per informazioni sulla creazione di un nuovo modello EDM e sulla relativa aggiunta a un progetto, vedere Procedura: creare un nuovo modello Entity Data Model. Per informazioni sull'aggiunta di un EDM esistente a un progetto, vedere Procedura: aggiungere un Entity Data Model esistente.
Aggiungere un nuovo progetto che non sia un progetto Sito Web ASP.NET alla soluzione esistente.
Per informazioni sull'aggiunta di un progetto a una soluzione esistente, vedere Procedura: creare soluzioni basate su più progetti.
Fare clic con il pulsante destro del mouse sul progetto appena aggiunto (non sul progetto Libreria di classi) e scegliere Aggiungi riferimento.
Verrà visualizzata la finestra di dialogo Aggiungi riferimento.
Fare clic sulla scheda Progetti della finestra di dialogo Aggiungi riferimento e selezionare il progetto Libreria di classi. Fare clic su OK.
Fare di nuovo clic con il pulsante destro del mouse sul progetto appena aggiunto (non sul progetto Libreria di classi) e scegliere Aggiungi riferimento.
Fare clic sulla scheda .NET della finestra di dialogo Aggiungi riferimento e selezionare System.Data.Entity. Fare clic su OK.
Aprire il file App.Config del progetto Libreria di classi.
Evidenziare la sezione della stringa di connessione del file App.Config, fare clic con il pulsante destro del mouse su di essa e scegliere Copia. Copiare ad esempio il codice simile al seguente:
<add name="SchoolEntities" connectionString="metadata=res://*/School.csdl| res://*/School.ssdl| res://*/School.msl; provider=System.Data.SqlClient; provider connection string=" Data Source=(local); Initial Catalog=School; Integrated Security=True; MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
Aprire il file App.Config del progetto appena aggiunto e incollare le informazioni sulla stringa di connessione copiate nel nodo
<connectionStrings>
.Nota Se il progetto non contiene un file App.Config, è possibile aggiungerne uno facendo clic con il pulsante destro del mouse sul progetto in Esplora soluzioni, scegliendo Aggiungi e selezionando Nuovo elemento. Scegliere File di configurazione dell'applicazione dalla finestra di dialogo che viene aperta e fare clic su OK.
È ora possibile scrivere codice nel progetto appena aggiunto per utilizzare il modello EDM definito nel progetto Libreria di classi.
Nota |
---|
Prima di compilare la soluzione, potrebbe essere necessario impostare il progetto appena aggiunto come progetto di avvio. A tale scopo, fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e scegliere Imposta come progetto di avvio. |
Per utilizzare un modello EDM definito in una libreria di classi da un progetto Sito Web ASP.NET
In Visual Studio creare un progetto Libreria di classi di Visual C# o Visual Basic.
Per informazioni sulla creazione di progetti in Visual Studio, vedere Procedura: creare soluzioni e progetti.
Aggiungere un modello EDM al progetto Libreria di classi.
Per informazioni sulla creazione di un nuovo modello EDM e sulla relativa aggiunta a un progetto, vedere Procedura: creare un nuovo modello Entity Data Model. Per informazioni sull'aggiunta di un EDM esistente a un progetto, vedere Procedura: aggiungere un Entity Data Model esistente.
Aggiungere un progetto Sito Web ASP.NET alla soluzione esistente.
Per informazioni sull'aggiunta di un progetto a una soluzione esistente, vedere Procedura: creare soluzioni basate su più progetti.
Fare clic con il pulsante destro del mouse sul progetto Sito Web ASP.NET e scegliere Aggiungi riferimento.
Verrà visualizzata la finestra di dialogo Aggiungi riferimento.
Fare clic sulla scheda .NET della finestra di dialogo Aggiungi riferimento e selezionare System.Data.Entity. Fare clic su OK.
Nel passaggio successivo verrà fatto riferimento al progetto Libreria di classi dal progetto Sito Web ASP.NET. Questa operazione può essere eseguita nei due modi seguenti:
Fare clic con il pulsante destro del mouse sul progetto Sito Web ASP.NET in Esplora soluzioni e scegliere Aggiungi riferimento.
Verrà visualizzata la finestra di dialogo Aggiungi riferimento.
Fare clic sulla scheda Progetti della finestra di dialogo Aggiungi riferimento e selezionare il progetto Libreria di classi. Fare clic su OK.
-oppure-
In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto Libreria di classi e scegliere Compila.
L'assembly della libreria di classi verrà aggiunto alla cartella bin\Debug del progetto.
Fare clic con il pulsante destro del mouse sul progetto Sito Web ASP.NET e scegliere Aggiungi cartella ASP.NET. Selezionare Bin.
La cartella Bin verrà aggiunta al progetto.
In Esplora risorse passare alla cartella bin\Debug del progetto Libreria di classi. Fare clic con il pulsante destro del mouse sull'assembly del progetto (il file <nome_progetto>.dll) e scegliere Copia.
In Esplora soluzioni fare clic con il pulsante destro del mouse sulla cartella Bin del progetto Sito Web ASP.NET e scegliere Incolla.
Nel passaggio successivo i file di modello e di mapping verranno resi disponibili per il progetto Sito Web ASP.NET. A tale scopo è possibile incorporare i file di modello e di mapping come risorse nell'assembly della libreria di classi, come descritto nei passaggi seguenti. Per i metodi alternativi, vedere la procedura alla fine di questo argomento "Per copiare file di mapping e di metadati in un progetto Sito Web ASP.NET".
Aprire il file App.Config del progetto Libreria di classi.
Evidenziare le informazioni sulla stringa di connessione, fare clic con il pulsante destro del mouse e scegliere Copia. Copiare ad esempio il codice simile al seguente:
<add name="SchoolEntities" connectionString="metadata=res://*/School.csdl| res://*/School.ssdl| res://*/School.msl; provider=System.Data.SqlClient; provider connection string=" Data Source=(local); Initial Catalog=School; Integrated Security=True; MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
Aprire il file Web.config del progetto Sito Web ASP.NET e incollare le informazioni sulla stringa di connessione copiate nel nodo
<connectionStrings>
.
È ora possibile scrivere codice nel progetto Sito Web ASP.NET per utilizzare il modello EDM definito nel progetto Libreria di classi.
Nota |
---|
Prima di compilare la soluzione, potrebbe essere necessario impostare il progetto appena aggiunto come progetto di avvio. A tale scopo, fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e scegliere Imposta come progetto di avvio. |
Per copiare file di mapping e di metadati in un progetto Sito Web ASP.NET
Nelle procedure riportate di seguito vengono descritte due opzioni per la copia dei file di modello e di mapping in un progetto Sito Web ASP.NET. Entrambi i metodi descritti rappresentano alternative al passaggio 7 della procedura riportata sopra. Nella prima procedura viene illustrato come copiare i file nella cartella Bin di un progetto Sito Web ASP.NET, mentre nella seconda viene descritto come copiare i file nella cartella App_Data. Se si sceglie una di queste opzioni, non incorporare i file di modello e di mapping come risorse nell'assembly della libreria di classi.
Per copiare i file di mapping e di metadati nella cartella Bin di un progetto Sito Web ASP.NET
Fare doppio clic sul file con estensione edmx nel progetto Libreria di classi. Il file con estensione edmx verrà aperto in ADO.NET Entity Data Model Designer (Entity Designer).
Fare clic con il pulsante destro del mouse in un punto vuoto dell'area di progettazione e scegliere Proprietà.
Nella finestra Proprietà impostare il valore della proprietà Elaborazione elementi metadati su Copia in directory di output. Quando si seleziona questo valore, Entity Designer modifica la stringa di connessione nel file App.Config del progetto Libreria di classi per ottenere percorsi file relativi.
In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto Libreria di classi e scegliere Compila.
In Esplora risorse passare alla directory di output del progetto Libreria di classi (cartella bin\Debug) e copiare i file con estensione csdl, ssdl e msl.
Fare clic con il pulsante destro del mouse sulla cartella Bin del progetto Sito Web ASP.NET e scegliere Incolla.
Nota Se il progetto non contiene una cartella Bin, è possibile aggiungerne una facendo clic con il pulsante destro del mouse sul progetto in Esplora soluzioni, scegliendo Aggiungi cartella ASP.NET e selezionando Bin.
Aprire il file App.Config del progetto Libreria di classi. Evidenziare le informazioni sulla stringa di connessione, fare clic con il pulsante destro del mouse e scegliere Copia.
Aprire il file Web.config del progetto Sito Web ASP.NET e incollare le informazioni sulla stringa di connessione copiate nel nodo
<connectionStrings>
.Modificare le voci dei metadati nella stringa di connessione che deve essere preceduta dal prefisso ~\bin\. La voce della stringa di connessione copiata e modificata dovrebbe, ad esempio, essere simile alla seguente:
<add name="SchoolEntities" connectionString="metadata=~\bin\School.csdl| ~\bin\School.ssdl| ~\bin\School.msl; provider=System.Data.SqlClient; provider connection string=" Data Source=(local); Initial Catalog=School; Integrated Security=True; MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
Per copiare i file di modello e di mapping nella cartella App_Data del progetto Sito Web ASP.NET
I passaggi per copiare i file di modello e di mapping nella cartella App_Data sono simili ai passaggi descritti per copiarli nella cartella Bin. Esistono tuttavia due differenze principali.
I file con estensione csdl, ssdl e msl devono essere copiati nella cartella App_Data del progetto Sito Web ASP.NET, anziché nella cartella Bin (passaggio 6 precedente).
Nota Se il progetto non contiene una cartella App_Data, è possibile aggiungerne una facendo clic con il pulsante destro del mouse sul progetto in Esplora soluzioni, scegliendo Aggiungi cartella ASP.NET e selezionando App_Data.
Dopo avere copiato le informazioni sulla stringa di connessione dalla cartella App.Config del progetto Libreria di classi nel file Web.config del progetto Sito Web ASP.NET (passaggi 7 e 8 precedenti), modificare le voci dei metadati che devono essere precedute dal prefisso |DataDirectory|. La voce della stringa di connessione copiata e modificata dovrebbe, ad esempio, essere simile alla seguente:
<add name="SchoolEntities" connectionString="metadata=|DataDirectory|\School.csdl| |DataDirectory|\School.ssdl| |DataDirectory|\School.msl; provider=System.Data.SqlClient; provider connection string=" Data Source=(local); Initial Catalog=School; Integrated Security=True; MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
Vedere anche
Altre risorse
Attività di distribuzione con Entity Designer
Attività degli strumenti di Entity Data Model
Scenari di ADO.NET Entity Data Model Designer
Stringhe di connessione (Entity Framework)