Quantcast
Channel: Bitácora - El blog del equipo de Desarrollos NEA
Viewing all articles
Browse latest Browse all 50

[EF] Utilizar el ConnectionString de mi modelo Entity Framework

$
0
0

Trabajando con Federico necesitamos realizar consultas a la DB “dinámicamente” para rellenar reportes con Report Server embebido en nuestras aplicaciones web.
Para eso utilizamos Procedimientos Almacenados, y como queremos que sea lo mas “genérico posible”, obtenemos el nombre del reporte (ya sea por un campo de la DB o armándolo con alguna política de nombres teniendo en cuenta el del reporte).

Como sabemos la Cadena de Conexión de Entity Framework esta compuesta por la cadena, path de archivos del modelo y de asignación. Por ejemplo…

<connectionStrings><addname="AdventureWorksEntities"connectionString="metadata=.\AdventureWorks.csdl|.\AdventureWorks.ssdl|.\AdventureWorks.msl;
         provider=System.Data.SqlClient;provider connection string='Data Source=localhost;
         Initial Catalog=AdventureWorks;Integrated Security=True;Connection Timeout=60;
         multipleactiveresultsets=true'"providerName="System.Data.EntityClient"/></connectionStrings>

Para armar nuestro Comando ADO.NET “puro y simple” (y genérico para llenar nuestros reportes) necesitamos la Conexión y para ello una cadena… y no queríamos:

  • Tener una cadena por separado (la tentación y fuerte!)
  • Parsear la cadena de conexión de EF (para obtener la parte que necesitamos)

 

Entonces solo basta una lectura rápida de las propiedades de la conexión en este caso nos valemos de la propiedad StoreConnection del EntityConnection

Textual de MSDN:

(…)Proporciona acceso a la conexión de origen de datos subyacente usada por el objeto EntityConnection.(…)

 

Podríamos entonces tener una propiedad estática que nos ayude:

publicstaticstring ConnectionString
{get
    {using ( AdventureWorksEntities contexto = newAdventureWorksEntities())
        {string cadenaCon = 
                    ((System.Data.EntityClient.EntityConnection)contexto.Connection).StoreConnection.ConnectionString;return cadenaCon;
            }

    }
}
 

 

Enlaces

Crossposting desde mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja

Viewing all articles
Browse latest Browse all 50

Trending Articles