Consulta sobre Application Block de Acceso a Datos

01/07/2005 - 01:58 por Cristian Bastias | Informe spam
Hola a todos

¿Como puedo crear un objeto Database sin instancia?, es decir sin un archivo
de configuracion. Hasta ahora solo puedo crear el objeto database con esta
instruccion

Private _db as Database = DatabaseFactory.CreateDatabase("QuickStarts
Instance")

Pero la cadena de conexion que necesito la genero dinamicamente, entonces
¿Como podriar crear el objeto Database a partir de mi cadena de conexion?
 

Leer las respuestas

#1 Julio Casal
01/07/2005 - 07:10 | Informe spam
Sí Cristian, sí es posible crear dinámicamente el objeto Database. Este
código te puede ayudar:

using Microsoft.Practices.EnterpriseLibrary.Data;
using Microsoft.Practices.EnterpriseLibrary.Configuration;
using Microsoft.Practices.EnterpriseLibrary.Data.Configuration;

DatabaseSettings settings = new DatabaseSettings();

// This maps to <databaseType> element in data config file
DatabaseTypeData type = new DatabaseTypeData("Sql Server",
"Microsoft.Practices.EnterpriseLibrary.Data.Sql.SqlDatabase,
Microsoft.Practices.EnterpriseLibrary.Data, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null");

settings.DatabaseTypes.Add(type);

// This maps to <connectionString> element in data config file
ConnectionStringData connectionString = new
ConnectionStringData("localhost.EntLibQuickStarts");

// Followings map to <parameter> elements in data config file
ParameterData param = new ParameterData("server", "localhost");
connectionString.Parameters.Add(param);
param = new ParameterData("database", "EntLibQuickStarts");
connectionString.Parameters.Add(param);
param = new ParameterData("integrated security", "true");
connectionString.Parameters.Add(param);
settings.ConnectionStrings.Add(connectionString);

// Too bad compiler gets confused InstanceData with
System.Diagnostics.InstanceData. It maps to <instance> element in data
config file
Microsoft.Practices.EnterpriseLibrary.Data.Configuration.InstanceData
instance = new
Microsoft.Practices.EnterpriseLibrary.Data.Configuration.InstanceData("localhost", "Sql Server", "localhost.EntLibQuickStarts");

settings.Instances.Add(instance);

ConfigurationDictionary configurations = new ConfigurationDictionary();

// This is how to tie DatabaseSettings with ConfigurationDictionary. It maps
to <configurationSection name="dataConfiguration"> element in App.config file

configurations.Add("dataConfiguration", settings);
ConfigurationContext context =
ConfigurationManager.CreateContext(configurations);

Database database = new
DatabaseProviderFactory(context).CreateDatabase("localhost");



Parece que en próximas versiones va a haber una forma más fácil de hacer
esto. Puedes encontrar más información sobre lo que deseas hacer en estas
páginas:

http://practices.gotdotnet.com/mess...ad.aspx?id)5a464a-6072-4e25-94e2-91be63527327&mbide6b3c0-1261-461b-b86d-eff86af3939d&threadid¹534ec0-076e-4023-98ab-fbcf01bafd00

http://www.gotdotnet.com/workspaces...ad.aspx?id)5a464a-6072-4e25-94e2-91be63527327&threadid=9c20023a-db8a-4afe-9ade-6aa213110653

http://spaces.msn.com/members/yangcao88/Blog/cns!1ppRXnKxUiSr5Bh0faV-l1PQ!107.entry


Espero haber podido ser de ayuda.

Saludos.

Julio Casal
.Net Solutions Developer
MCAD


"Cristian Bastias" wrote:

Hola a todos

¿Como puedo crear un objeto Database sin instancia?, es decir sin un archivo
de configuracion. Hasta ahora solo puedo crear el objeto database con esta
instruccion

Private _db as Database = DatabaseFactory.CreateDatabase("QuickStarts
Instance")

Pero la cadena de conexion que necesito la genero dinamicamente, entonces
¿Como podriar crear el objeto Database a partir de mi cadena de conexion?

Preguntas similares