Dear nhusers, First off thanks to Fabio and Gustavo for all your development and support efforts. Life-saving work guys, hope one of you could help with this question.
SETUP: I'm building an MVC web application using NHibernate 2.0.1.4000 as my business tier. The app implements a UnitOfWork which wraps around an ISession. The ISession itself is produced by an ISessionFactory (based of the ORMs of course) then stored to the HttpContext to be used globally throughout the application. In each Repository Class, a Lambda expression is passed to a Find<>() method of the UnitOfWork (via its ISession field) in order to perform queries against the DB using session.Linq<>() (Love NHibernate.Linq, VERY AWESOME!). In the ORMs, the id elements contain generator class="identity" and the PKs are Int32... FlushMode = Never, unsaved-value="0". PROBLEM: When I want to build a transaction: I use the UnitOfWork to call BeginTransaction(), I create a transient instance of an object (new object) and populate its properties, I use the UnitOfWork to SaveOrUpdate() the newly created object to the current session. HUH? the session.SaveOrUpdate() actually performs a SQL Insert statement on the spot! The session didn't even wait for me to call ISession.Flush ()! WHY??? The object I created depends on other objects (contains NOT NULLS) every time SaveOrUpdate() performs an INSERT on the incomplete object, the DB blows up the app... QUESTIONS: I didn't seem to have this problem in NHibernate 1.6, Is there something new added to 2.0? What's the best design pattern to building an app in this fashion? Any replies would be greatly appreciated! --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nhusers?hl=en -~----------~----~----~----~------~----~------~--~---
