Hello guys, I have a problem using NHibernate, but first let me explain the scenario.
We have a web application which allows the user to manage fields over the entities. For sample, we have a City table with fixed columns (Id, Name and State), then user can define new columns on the entity (city) by a configuration scren we have developed. This configuration screen runs some sql statements to manage the fields (Alter Table to create an drop columns on the tables) which we call as "flex field". However, these flex fields are no mapped by nhibernate, so, we need to manage the information on these fields manually by sql statement. The code bellow shows how we do it in a scenario when we are creating a new entity (city): // start a transaction from asp.net mvc attribute (ActionExecuting) var transaction = session.BeginTransaction(); // save a new entity on the data layer session.Save(city); // get a IDbCommand instance to manage the flex fields var cmd = session.Connection.CreateCommand(); // define the sql update to update the flex fields passing the id of the entity cmd.CommandText = "update city set flex1=@flex1, flex2=@flex2 where id = @id"; // define all the parameters on the cmd here... // add the command on the nhibernate transaction object transaction.EnList(cmd); // execute the command cmd.ExecuteNonQuery(); // commit the transaction on the asp.net mvc attribute (ActionExecuted) transaction.Commit(); When we run this code, everything executes without any error. If we are updating a existent entity (City) the flex fields are updated fine, but the problem is when we are inserting a new entity (City), the update statement executed by command is not being executed, and we get all the flex field with null values. I supose when we are inserting, the command is been performed before the insert (on commit). Is there any way to force the commands on EnList Transaction be executed after all others statements, but on the same transaction? Thank you. -- ______________________________________ Felipe B Oriani [email protected] -- You received this message because you are subscribed to the Google Groups "nhusers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/nhusers. For more options, visit https://groups.google.com/d/optout.
