That's a good point, Sloan.
A question though: While I realize the that bypassing the factory of the
EntLibs may not be clean, have you come across a best practice for directly
passing in connection strings without using an app/web.config file? What
I ran into, and the reason I directly use the Database objects, is that our
connection strings are anything but stable and for our framework libraries,
it made more sense to create class pseudo-enumerators and pass them along
rather than change 30+ app/web.config files throughout our enterprise. Make
a change to a library, reroll that library to the 2 servers those apps read
from, and be done. The apps are spread throughout the enterprise, so placing
them in the machine.config (if even possible) didn't even seem as clean of
a solution.
The solution you provide still requires manually editing, re-encrypting,
and rerolling config files to the application sources.
Thanks for the explaination^^.
-dl
--
David R. Longnecker
http://blog.tiredstudent.com
sI think this will work:
s>
s<add key="MyPreferredDatabase" value="StagingConnectionString" />
s>
s<connectionStrings>
s>
s<add name="DevelopmentConnectionString"
sconnectionString="server=MyDevelopmentServer;data base=Northwind;User
sID=northwinduser;password=northwindpassword"
sproviderName="System.Data.SqlClient"/>
s>
s<add name="ProductionConnectionString"
sconnectionString="server=MyProductionServer;datab ase=Northwind;User
sID=northwinduser;password=northwindpassword"
sproviderName="System.Data.SqlClient"/>
s>
s<add name="StagingConnectionString"
sconnectionString="server=MyStagingServer;database =Northwind;User
sID=northwinduser;password=northwindpassword"
sproviderName="System.Data.SqlClient"/>
s>
s</connectionStrings>
s>
s-----------The Code
s>
sprivate Database GetADatabase ( )
s{
sstring preferredDBName =
sSystem.Configuration.ConfigurationManager["MyPreferredDatabase"];
sDatabase db = DatabaseFactory.CreateDatabase(preferredDBName);
s>
sreturn db;
s>
s}
s>
sI think that is what Cowboy was getting at.
s>
sI don't think grabbing a concrete database (SqlDatabase) is a good
ssolution.
s>
s"David R. Longnecker" <dlongnecker@community.nospamwrote in message
snews:463c24757728c982276e775613@msnews.microsoft. com...
s>
Quote:
Quote:
>Miguel-
>>
>Unfortunately, the Factory doesn't have an overload that takes a
>>
sconnection
s>
Quote:
Quote:
>string. To directly pass a connection string, you have to bypass the
>>
sfactory
s>
Quote:
Quote:
>and directly use the database objects.
>>
>For example, if you're using
>Microsoft.Practices.EnterpriseLibrary.Data, you'd take that a step
>farther to .Sql or .Oracle, etc.
>>
>From there you could use
>>
>SqlDatabase db = new SqlDatabase("connectionString");
>>
>or, to make it more dynamic, pull in the database name from a
>variable, a querystring, wherever, as long as it matches the entry in
>the web.config.
>>
>string databaseName = ""; // Get database name from wherever
>it is coming from.
>SqlDatabase db =
>new SqlDatabase(
sSystem.Configuration.ConfigurationManager.Connect ionStrings[databaseN
same].Co nnectionString);
s>
Quote:
Quote:
>Finally, the method I use is to create a ConnectionStrings class and
>>
ssimply
s>
Quote:
Quote:
>return each... creating a somewhat pseudo enum for VERY common
>connection strings that I don't want to modify in 30+ web.configs if
>something
>>
schanges;
s>
Quote:
Quote:
>I just want to update the framework library and push it back out to
>the
>>
sGAC
s>
Quote:
Quote:
>in a server. If interested in that, check the blog entry below:
>>
s
http://tiredblogger.wordpress.com/20...onnection-stri
sngs-for-enterprise-library-30/
s>
Quote:
Quote:
>HTH.
>>
>-dl
>>
>--
>David R. Longnecker
>
http://blog.tiredstudent.com
>sHello,
>s>
>sI am using Microsoft Enterprise Library, on a class, to connect to
>a
>sdatabase as follows:
>s>
>sDim db As Database =
>DatabaseFactory.CreateDatabase("DatabaseName")
>s>
>sHowever, I would like the database name to be dynamic, i.e.,
>sspecified on the web site.
>s>
>sCan I define a connection string in my web site web.config and
>then
>suse it to create the database?
>s>
>sOr can I create my own Web.Config group to hold this information?
>s>
>sThanks,
>sMiguel