my.ASPItalia.com
ASP.NET
|
HTML5
|
LINQ e Entity Framework
|
Silverlight
|
Windows Phone
|
.NET Framework
|
Libro WP7
|
Libro HTML5
|
Corso on-site HTML5
Iscriviti
Login
Newsletter
Home
Articoli
Script
Notizie
FORUM
Blogs
Lab
Media
Tutorials
Corsi
Libri
Tags
Tutti i forum
Ricerca
FAQ
Fai una domanda
Nhibernate, impostare la stringa di connessione a runtime
in
.NET Framework
>
.NET Framework
Ultimo messaggio
1
2
>>
Max Mercury
il 24 gennaio 2010 alle 12:44
56 messaggi
dal 13 aprile 2007
Ho dato un occhiata a qualche tutorial online su Nhibernate perchè ho intenzione di utilizzarlo in un piccolo progetto.
Ho notato però che la stringa di connessione va impostata nel file di configurazione.
Questo per me sarebbe un problema, la stringa di connessione non la conosco
a priori, mi viene passata in input dal client.
Suppongo ci sia un modo per impostarla a runtime, qualcuno sà dove posso trovare un esempio o linkarmi qualche documentazione che spiega come fare?
Vi ringrazio in anticipo.
PS spero di aver scritto nella sezione giusta!
Rispondi
Quoting
JoeRuspante
il 26 gennaio 2010 alle 12:45
350 messaggi
dal 08 febbraio 2009
Ciao.
Così ad occhio, presumo che il tuo problema sia principalmente la login (utente e password), in quanto se hai più client, tutti accederebbero al DB col medesimo utente.
Tempo fa avevo lo stesso problema e non avevo trovato nulla... Però avevo molta fretta di risolvere la cosa.
Io avevo "aggirato" il problema creando un file XML di appoggio in cui mettevo tutti i dati di NHibernate e due segnaposto (i classici {0}, {1}, ... {n} di string.Format). Poi, prima di leggere i dati di configurazione di NHibernate, leggevo il suddetto file, sostituivo i segnaposto e scrivevo l'xml completo da cui NHibernate andava a caricare i valori.
Purtroppo non ho più l'esempio sottomano perchè abbiamo cambiato modo di gestire il tutto... Però se hai fretta di risolvere il problema, questa potrebbe essere una soluzione provvisoria in attesa di trovare qualcosa di valido.
PS: Se trovi qualcosa, magari posta! Così se altri avranno il medesimo problema.
Nel frattempo, se il tuo progetto è piccolo e poco complicato, ci sono due prodotti che potrebbero semplificarti la gestione dei mapping (il primo forse ti aiuta anche nella stringa di connessione):
-) http://wiki.fluentnhibernate.org/Getting_started
-) http://www.castleproject.org/activerecord/gettingstarted/index.html
Ciao e buon lavoro!
Rispondi
Quoting
Max Mercury
il 26 gennaio 2010 alle 18:24
56 messaggi
dal 13 aprile 2007
Ciao Joe, innanzi tutto grazie per avermi risposto.
Nel frattempo cercando su google e leggendo di qua e di la sono riuscito
ad ottenere ciò che volevo.
Magari non nel modo più ortodosso, questo non saprei dirlo, ma funziona:
Quando devo aprire la sessione per salvare i dati sul DB
cambio la proprietà connection.connection_string e imposto la mia stringa.
Il mio problema non sta solo nel fatto di user e password, ma proprio
sull'intera stringa in quanto non conosco l'indirizzo del server a priori
e in alcuni casi nemmeno il nome del DB.
Il codice :
Dim configuration As New Configuration()
configuration.Configure()
configuration.AddAssembly(GetType(myTipo).Assembly)
configuration.Properties("connection.connection_string") = ConnectionString
_sessionFactory = configuration.BuildSessionFactory()
In questo modo funziona, anche se non ho ancora chiaro quel che c'è sotto al coperchio...
Ad esempio non ho capito a cosa serva il metodo AddAssembly sull'oggetto configuration
Poi devo ancora bene approfondire il mapping del file perchè ho alcuni casi particolari di proprietà della classe che sono di tipo Object e vengono assegnati a runtime, come dovrei mapparlo??? a seconda dell'oggetto che viene passato cambiano i nomi delle proprietà...
bhe cmq un passetto alla volta spero di completare tutto il progetto.
Rispondi
Quoting
Cradle
il 27 gennaio 2010 alle 13:08
1.856 messaggi
dal 01 luglio 2004
Contributi
www.aspitalia.com
|
Blog
Ciao,
scusa se ti rispondo solo ora, ma non avevo notato questo thread. Il tuo modo di procedere è corretto, occhio però a modificare la stringa di connessione prima di creare la sessionFactory.
Per quanto riguarda la tua ulteriore domanda, con AddAssembly accadono un sacco di cose, ad esempio vengono recuperati tutti i file di mapping presenti come risorse nell'assembly che aggiungi.
A presto,
m.
Rispondi
Quoting
Max Mercury
il 29 gennaio 2010 alle 09:06
56 messaggi
dal 13 aprile 2007
Ciao Cradle!
In questi giorni ho cercato di capire un pò meglio come funzioni NHibernate
ripromettendomi di leggere un buon documento o il libro stesso non appena ne avrò l'occasione.
Ho scoperto che il metodo Configuration.Configure()
carica i dati di configurazione che stanno sull'XML
Ero arrivato alla conclusione che l'add assembly caricasse il file di mapping,
ma come funziona?? cerca nel progetto un file che cominci con il nome della classe??
Ho aggirato il problema sul mapping di una proprietà System.Object
aggiungendo una Classe base (a quelle che venivano assegnate ad Object a runtime)
come proprietà e mappando quella.
Mi hanno detto che avrei dovuto utilizzare ANY ma non sono riuscito a capire come.
Infine, per il momento non sono riuscito ancora a far funzionare query.substitutions
o forse funziona diversamente da come vorrei io.
Rispondi
Quoting
Cradle
il 29 gennaio 2010 alle 09:42
1.856 messaggi
dal 01 luglio 2004
Contributi
www.aspitalia.com
|
Blog
AFAIK cerca file contenuti come risorse embedded nell'assembly e con l'estensione .hbm.xml
Quali problemi hai in particolare?
m.
Rispondi
Quoting
Max Mercury
il 29 gennaio 2010 alle 11:07
56 messaggi
dal 13 aprile 2007
Ciao,
ho provato a modificare query.substitutions in modo che quando ho
una property booleana salvi sul db 'X' quando è true e lasci NULL quando è false
invece continua a mettere 1 o 0
Infatti anche li ho dovuto aggiungere due Property che fanno loro il controllo
e ritornano 'X' o Null.
Tnx!
Rispondi
Quoting
Cradle
il 29 gennaio 2010 alle 11:29
1.856 messaggi
dal 01 luglio 2004
Contributi
www.aspitalia.com
|
Blog
Occhio che Query.Substitutions serve per i valori di confronto, ossia quando scrivi ad es. del codice HQL
from Fattura f where f.Emessa = true
il parser prende quel true e applica le query.substitutions
Se vuoi invece modificare il modo in cui vengono memorizzati le proprietà bool sul tuo db, dovresti usare uno UserType
Ciao,
m.
Rispondi
Quoting
1
2
>>
Salto rapido
Ultimi messaggi
Tutti i forum
Ricerca
Utenti online
ASP.NET
ASP.NET 2.0
ASP.NET 3.5
ASP.NET 4.0
.NET Framework
Silverlight
Windows Phone
Windows Presentation Foundation e WinForms
Windows Communication e Workflow
ASP - avanzato
ASP - base
SQL Server e MySQL
Libri
Hosting
Altri linguaggi e tecnologie
Windows Server, IIS & Security
E-commerce
OT
Commenti: blogs e notizie
Eventi
Torna al forum
| Feed
RSS
ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
In primo piano
Speciale web mobile: costruire applicazioni con ASP.NET, jQuery Mobile e PhoneGap
Speciale Silverlight 5: tutte le novità
Rilasciato il bollettino MS11-100 per risolvere i problemi di attacchi DoS di ASP.NET
I più letti di oggi
Le funzionalità di drag and drop di Silverlight 4.0
Zip e ASP.NET
Windows 8 su ARM: avrà il desktop, Office e il connected standby
.NET Campus 2012 - Roma
Disponibile il codice sorgente di ASP.NET MVC
Windows Server AppFabric in versione 1.0 RTM
jQuery UI in hosting su Microsoft CDN
Media
Windows Phone 7.5 Developer Day: marketplace e strumenti per monetizzare le app
Windows Phone 7.5 Developer Day: costruire app con Visual Studio 2010 e Windows Phone Runtime
Tutti i media
In evidenza
Speciale web mobile: costruire applicazioni con ASP.NET, jQuery Mobile e PhoneGap
Speciale Silverlight 5: tutte le novità
Sviluppare applicazioni per Windows Phone: scopri come fare con il nostro nuovissimo libro!
Sviluppa le applicazioni del futuro oggi: impara con il nostro libro HTML5 Espresso!
Community Days 2012 - Milano
Windows 8 su ARM: avrà il desktop, Office e il connected standby
Rilasciato Entity Framework 4.3
Sovrascrivere il tipo di esecuzione di una query PLINQ
MISC
I nostri autori
Collabora con noi!
Media Kit - Pubblicità sul nostro network