Cómo: Usar un modelo definido en una biblioteca de clases (Herramientas de Entity Data Model)
En este tema se describe cómo usar un modelo conceptual que se definió en un proyecto de biblioteca de clases de Visual Studio 2008.
El primer procedimiento de este tema describe cómo usar un modelo conceptual que se definió en una biblioteca de clases de proyectos distintos de los proyectos de sitio web de ASP.NET. El segundo procedimiento describe cómo usar un modelo conceptual que se definió en una biblioteca de clases de un proyecto de sitio web de ASP.NET.
Para usar un modelo definido en una biblioteca de clases de proyectos distintos de los proyectos de sitio web de ASP.NET
En Visual Studio, cree un proyecto de bibliotecas de clases de Visual C# o Visual Basic.
Para obtener información sobre cómo crear proyectos en Visual Studio, vea Cómo: Crear soluciones y proyectos.
Agregue un modelo conceptual al proyecto de biblioteca de clases.
Para obtener información sobre cómo crear un nuevo modelo conceptual y agregarlo a un proyecto, vea Cómo: Crear un nuevo archivo .edmx (Entity Data Model Tools). Para obtener información sobre cómo agregar un modelo conceptual existente a un proyecto, vea Cómo: Agregar un archivo .edmx existente (Herramientas de Entity Data Model).
Agregue un nuevo proyecto que no sea de sitio web de ASP.NET a la solución.
Para obtener información sobre cómo agregar un proyecto a una solución existente, vea Cómo crear soluciones de varios proyectos.
Haga clic con el botón secundario en el proyecto agregado recientemente (no el proyecto de biblioteca de clases) y seleccione Agregar referencia.
Aparecerá el cuadro de diálogo Agregar referencia.
Haga clic en la pestaña Proyectos del cuadro de diálogo Agregar referencia y seleccione su proyecto de biblioteca de clases. Haga clic en Aceptar.
De nuevo, haga clic con el botón secundario en el proyecto agregado recientemente (no el proyecto de biblioteca de clases) y seleccione Agregar referencia.
Haga clic en la pestaña .NET del cuadro de diálogo Agregar referencia y seleccione System.Data.Entity. Haga clic en Aceptar.
Abra el archivo App.Config del proyecto de biblioteca de clases.
Resalte la sección de cadena de conexión del archivo App.Config, haga clic con el botón secundario en ella y seleccione Copiar. Por ejemplo, copie el código que se parezca al siguiente:
<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" />
Abra el archivo App.Config del proyecto agregado recientemente y pegue la información de la cadena de conexión copiada en el nodo
<connectionStrings>
.Nota: Si el proyecto no tiene un archivo App.Config, puede agregar uno haciendo clic con el botón secundario en el proyecto en el Explorador de soluciones, seleccionando Agregar y, después, seleccionando Nuevo elemento.Elija Archivo de configuración de aplicaciones en el cuadro de diálogo que se abre y haga clic en Aceptar.
Ahora puede escribir en el proyecto agregado recientemente el código que usará el modelo conceptual que se define en el proyecto de biblioteca de clases.
Nota: |
---|
Puede que tenga que establecer el proyecto agregado recientemente como proyecto de inicio antes de compilar la solución.Para ello, haga clic con el botón secundario en el proyecto en el Explorador de soluciones y seleccione Establecer como proyecto de inicio. |
Para usar un modelo definido en una biblioteca de clases de un proyecto de sitio web ASP.NET
En Visual Studio, cree un proyecto de biblioteca de clases de Visual C# o Visual Basic.
Para obtener información sobre cómo crear proyectos en Visual Studio, vea Cómo: Crear soluciones y proyectos.
Agregue un modelo conceptual al proyecto de biblioteca de clases.
Para obtener información sobre cómo crear un nuevo modelo conceptual y agregarlo a un proyecto, vea Cómo: Crear un nuevo archivo .edmx (Entity Data Model Tools). Para obtener información sobre cómo agregar un modelo conceptual existente a un proyecto, vea Cómo: Agregar un archivo .edmx existente (Herramientas de Entity Data Model).
Agregue un proyecto de sitio web ASP.NET a la solución.
Para obtener información sobre cómo agregar un proyecto a una solución existente, vea Cómo: Crear soluciones de varios proyectos.
Haga clic con el botón secundario en el proyecto de sitio web ASP.NET y seleccione Agregar referencia.
Aparecerá el cuadro de diálogo Agregar referencia.
Haga clic en la pestaña .NET del cuadro de diálogo Agregar referencia y seleccione System.Data.Entity. Haga clic en Aceptar.
El paso siguiente es hacer referencia al proyecto de biblioteca de clases desde el proyecto de sitio web ASP.NET. Puede hacer esto de dos formas:
Haga clic con el botón secundario en el proyecto de sitio web ASP.NET en el Explorador de soluciones y seleccione Agregar referencia.
Aparecerá el cuadro de diálogo Agregar referencia.
Haga clic en la pestaña Proyectos del cuadro de diálogo Agregar referencia y seleccione su proyecto de biblioteca de clases. Haga clic en Aceptar.
O bien
En el Explorador de soluciones, haga clic con el botón secundario en el proyecto de biblioteca de clases y, a continuación, seleccione Compilar.
El ensamblado de la biblioteca de clases se agrega a la carpeta bin\Debug del proyecto.
Haga clic con el botón secundario en el proyecto de sitio web ASP.NET y seleccione Agregar carpeta ASP.NET. Seleccione Bin.
La carpeta Bin se agrega al proyecto.
En el Explorador de Windows, navegue a la carpeta bin\Debug del proyecto de biblioteca de clases. Haga clic con el botón secundario en el ensamblado del proyecto (el archivo <nombreDeProyecto>.dll) y seleccione Copiar.
En el Explorador de soluciones, haga clic con el botón secundario en la carpeta Bin bajo el proyecto de sitio web ASP.NET y seleccione Pegar.
El paso siguiente es hacer que los archivos de asignación y de modelo estén disponibles para el proyecto de sitio web ASP.NET. Para ello, puede incrustar los archivos de asignación y modelo como recursos en el ensamblado de la biblioteca de clases, tal y como se describe en los pasos siguientes. Para obtener métodos alternativos, vea el procedimiento al final de este tema ("Para copiar los archivos de asignación y metadatos en un proyecto de sitio web ASP.NET").
Abra el archivo App.Config del proyecto de biblioteca de clases.
Resalte la información de la cadena de conexión, haga clic con el botón secundario y seleccione Copiar. Por ejemplo, copie el código que se parezca al siguiente:
<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" />
Abra el archivo Web.config del proyecto de sitio web ASP.NET y pegue la información de la cadena de conexión copiada en el nodo
<connectionStrings>
.
Ahora puede escribir en el proyecto de sitio web ASP.NET el código que usará el modelo que se define en el proyecto de biblioteca de clases.
Nota: |
---|
Puede que tenga que establecer el proyecto agregado recientemente como proyecto de inicio antes de compilar la solución.Para ello, haga clic con el botón secundario en el proyecto en el Explorador de soluciones y seleccione Establecer como proyecto de inicio. |
Copiar los archivos de asignación y metadatos en un proyecto de sitio web ASP.NET
Los procedimientos siguientes describen dos opciones para copiar los archivos de asignación y modelo en un proyecto de sitio web ASP.NET. Los dos métodos descritos aquí anteriormente constituyen una alternativa al paso 7 del procedimiento anterior. El primer procedimiento describe cómo copiar los archivos en la carpeta Bin de un proyecto de sitio web ASP.NET y el segundo procedimiento describe cómo copiar los archivos en la carpeta App_Data. No incruste los archivos de asignación y modelo como recursos en el ensamblado de biblioteca de clases si elige alguna de estas opciones.
Para copiar los archivos de asignación y de modelo en la carpeta Bin de un proyecto de sitio web ASP.NET
Haga doble clic en el archivo .edmx en el proyecto de biblioteca de clases. El archivo .edmx se abre en el ADO.NET Entity Data Model Designer (Entity Designer).
Haga clic con el botón secundario en un área vacía de la superficie de diseño y seleccione Propiedades.
En la ventana Propiedades, establezca el valor de la propiedad Procesamiento de artefactos de metadatos en Copiar en el directorio de resultados. Al seleccionar este valor, Entity Designer cambia la cadena de conexión en el archivo App.Config de la biblioteca de clases para tener rutas de acceso a archivos relativas.
En el Explorador de soluciones, haga clic con el botón secundario en el proyecto de biblioteca de clases y, a continuación, seleccione Compilar.
En el Explorador de Windows, navegue al directorio de salida de la biblioteca de clases (carpeta bin\Debug) y copie los archivos .csdl, .ssdl y .msl.
Haga clic con el botón secundario en la carpeta Bin bajo el proyecto de sitio web ASP.NET y seleccione Pegar.
Nota: Si el proyecto no contiene una carpeta Bin, puede agregar una haciendo clic con el botón secundario en el proyecto en el Explorador de soluciones, seleccionando Agregar carpeta ASP.NET y seleccionando Bin. Abra el archivo App.Config del proyecto de biblioteca de clases. Resalte la información de la cadena de conexión, haga clic con el botón secundario y seleccione Copiar.
Abra el archivo Web.config del proyecto de sitio web ASP.NET y pegue la información de la cadena de conexión copiada en el nodo
<connectionStrings>
.Cambie las entradas de metadatos en la cadena de conexión para anteponer ~\bin\. Por ejemplo, la entrada de la cadena de conexión copiada y modificada debería ser similar a la siguiente:
<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" />
Para copiar los archivos de asignación y modelo en la carpeta App_Data del sitio web ASP.NET
Los pasos para copiar los archivos de asignación y modelo en la carpeta App_Data son similares a los pasos para copiarlos en la carpeta Bin. Sin embargo, hay dos diferencias clave:
Los archivos .csdl, .ssdl y .msl se deberían copiar en la carpeta App_Data del proyecto de sitio web ASP.NET, en lugar de la carpeta Bin (el paso 6 anterior).
Nota: si el proyecto no contiene una carpeta App_Data, puede agregar una haciendo clic con el botón secundario en el proyecto en el Explorador de soluciones, seleccionando Agregar carpeta ASP.NET y seleccionando App_Data.
Después de copiar la información de la cadena de conexión de la carpeta App.Config de la biblioteca de clases al archivo Web.config de sitio web ASP.NET (los pasos 7 y 8 anteriores), cambie las entradas de los metadatos que se van a anteponer con |DataDirectory|. Por ejemplo, la entrada de la cadena de conexión copiada y modificada debería ser similar a la siguiente:
<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" />
Vea también
Otros recursos
Tareas de implementación con las herramientas de Entity Data Model
Tareas de herramientas de Entity Data Model
Escenarios de las herramientas de Entity Data Model
Connection Strings