I am currently doing a project utilizing NHibernate to connect to a legacy Oracle DB. Everything was nice and easy until I hit this problem. I need to retrieve a particular information, but to do this I must connect a number of tables. This means I need to create more persistent classes, more mapping files, which is sucks because I can actually just execute a stored function and get what I need.

So after scratching my head for quite sometimes, I found out that the solution was quite simple.
Using sessFact As ISessionFactory = CreateSessionFactory()
   Using sess As ISession = sessFact.OpenSession()
      Using transact As ITransaction = sess.BeginTransaction()
         '.... 
         Dim con As IDbConnection = sess.Connection
         Dim cmd As IDbCommand = con.CreateCommand()
         sess.Transaction.Enlist(cmd)
         cmd.CommandText = "select MyPackageName.MyFunction(" & myFunctionParam & ") from dual"
         dim objResult as Objetc = cmd.ExecuteScalar()
         '.....
      End Using
   End Using
End Using
I know this is not the right way, but I need to make compromise considering that this is a legacy database.
loading...
About Hardono
Incoming Search
nhibernate oracle function
 

Hello, I apologize for contacting you in this fashion, but I think you might be interested in submitting your site to my new tech directory…The Tech Directory at thetazzone.net
I’m assuming comments are moderated so when I click submit this post won’t automatically appear on site, if it does, I again apologize.