First look at the code entity. Corporation corpone = corploc. selectone ("62821666 ");
Entity. Homepage page = new mag. entity. homepage ();
Page. Area = corpone. areacode;
Page. contactman = "";
Page. Description = "";
Try
{
Conn. begintransaction ();
Conn. Save (PAGE );
Conn. committransaction ();
}
Catch (system. Exception ex)
{
Conn. rollback ();
Throw ex;
}
First, an error occurs, indicating that an error occurred while updating Corporation. The date is invalid. The trail learns that it is a company date marked as non-empty, but it is empty in the database. From nunit, we can clearly see that corporation is updated, but there is no update statement in my code, which is caused by Save (page, the homepage object does not have a corporation attribute. The code modification is more mysterious. If you execute the SELECT statement once, the commit operation will attract an update (Corporation), regardless of the absence of any update statements in the code.
Enter the non-empty Date Field in the database and run the test. The update Statement of corporation will not appear again. It seems that Nhibernate is really smart, Khan!