Compartir a través de


Cómo usar un modelo definido en una biblioteca de clases

Este tema describe cómo utilizar un Entity Data Model (EDM) en un proyecto cuando el EDM se define en un proyecto de biblioteca de clases de Visual Studio 2008.

El primer procedimiento de este tema describe cómo utilizar un EDM que se define en una biblioteca de clases de proyectos distintos de los proyectos de sitio web de ASP.NET. El segundo procedimiento describe cómo utilizar un EDM que se define en una biblioteca de clases de un proyecto de sitio web de ASP.NET.

Para utilizar un EDM definido en una biblioteca de clases de proyectos distintos de los proyectos de sitio web de ASP.NET

  1. 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.

  2. Agregue un EDM al proyecto de biblioteca de clases.

    Para obtener información sobre cómo crear un nuevo EDM y agregarlo a un proyecto, vea Cómo crear un nuevo Entity Data Model. Para obtener información sobre cómo agregar un EDM existente a un proyecto, vea Cómo agregar un Entity Data Model existente.

  3. 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.

  4. 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.

  5. Haga clic en la ficha Proyectos del cuadro de diálogo Agregar referencia y seleccione su proyecto de biblioteca de clases. Haga clic en Aceptar.

  6. 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.

  7. Haga clic en la ficha .NET del cuadro de diálogo Agregar referencia y seleccione System.Data.Entity. Haga clic en Aceptar.

  8. Abra el archivo App.Config del proyecto de biblioteca de clases.

  9. 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=&quot;
                                 Data Source=(local);
                                 Initial Catalog=School;
                                 Integrated Security=True;
                                 MultipleActiveResultSets=True&quot;" 
               providerName="System.Data.EntityClient" />
    
  10. 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 utilizará el EDM 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 generar 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 utilizar un EDM definido en una biblioteca de clases de un proyecto de sitio web ASP.NET

  1. 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.

  2. Agregue un EDM al proyecto de biblioteca de clases.

    Para obtener información sobre cómo crear un nuevo EDM y agregarlo a un proyecto, vea Cómo crear un nuevo Entity Data Model. Para obtener información sobre cómo agregar un EDM existente a un proyecto, vea Cómo agregar un Entity Data Model existente.

  3. 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.

  4. 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.

  5. Haga clic en la ficha .NET del cuadro de diálogo Agregar referencia y seleccione System.Data.Entity. Haga clic en Aceptar.

  6. 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:

    1. 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.

    2. Haga clic en la ficha Proyectos del cuadro de diálogo Agregar referencia y seleccione su proyecto de biblioteca de clases. Haga clic en Aceptar.

    O bien

    1. En el Explorador de soluciones, haga clic con el botón secundario en el proyecto de biblioteca de clases y, a continuación, seleccione Generar.

      El ensamblado de la biblioteca de clases se agrega a la carpeta bin\Debug del proyecto.

    2. 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.

    3. En el Explorador de Windows, navegue a la carpeta bin\Debug del proyecto de bibliotecas de clases. Haga clic con el botón secundario en el ensamblado del proyecto (el archivo <nombreDeProyecto>.dll) y seleccione Copiar.

    4. 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.

  7. 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").

    1. Abra el archivo App.Config del proyecto de biblioteca de clases.

    2. 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=&quot;
                                   Data Source=(local);
                                   Initial Catalog=School;
                                   Integrated Security=True;
                                   MultipleActiveResultSets=True&quot;" 
                 providerName="System.Data.EntityClient" />
      
    3. 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 utilizará el EDM 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 generar 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 metadatos en la carpeta Bin de un proyecto de sitio web ASP.NET

  1. Haga doble clic en el archivo .edmx en el proyecto de biblioteca de clase. El archivo .edmx se abre en el ADO.NET Entity Data Model Designer (Entity Designer).

  2. Haga clic con el botón secundario en un área vacía de la superficie de diseño y seleccione Propiedades.

  3. 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.

  4. En el Explorador de soluciones, haga clic con el botón secundario en el proyecto de biblioteca de clases y, a continuación, seleccione Generar.

  5. 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.

  6. 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.

  7. 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.

  8. 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>.

  9. 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=&quot;
                               Data Source=(local);
                               Initial Catalog=School;
                               Integrated Security=True;
                               MultipleActiveResultSets=True&quot;" 
             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=&quot;
                                 Data Source=(local);
                                 Initial Catalog=School;
                                 Integrated Security=True;
                                 MultipleActiveResultSets=True&quot;" 
               providerName="System.Data.EntityClient" />
      

Vea también

Otros recursos

Tareas de implementación con Entity Designer
Tareas de herramientas de Entity Data Model
Escenarios de ADO.NET Entity Data Model Designer
Cadenas de conexión (Entity Framework)