NHibernate: spannende Fehlermeldung für ein NULL-DateTime

by Oliver 21. March 2009 22:13

Heute war mal wieder NHibernate-Prime-Time: der Bildupload und das Löschen im Adminbereich funktionierten für einige Campingplätze problemlos, für andere gab es beim Aufruf von Session.Flush() bzw. jetzt Transaction.Commit() folgenden Fehler:

 

Hm, was mag das wohl für ein Fehler sein?

Ein Blick in die InnerException sollte uns mehr verraten:

Google anschmeißen und nach "Connection has been closed by peer" suchen... ein paar Seiten lesen... aber eine Antwort fehlt. Aus Verlegenheit noch ein paarmal probieren - und siehe da, irgendwie habe ich eine neue innere Ausnahme bekommen, die mir mehr sagt:

Wir haben es mit einem nicht initialisierten, not-nullable DateTime-Wert zu tun. Nur wo finden wir ihn? Das zu löscchen Image-Objekt zeigt keine Auffälligkeiten.

Der Profiler bringt's dann an's Licht: es ist der zugehörige Campingplatz, der aus bisher unerfindlichen Gründen in der DB ein NULL als DateModified zu stehen hat. Wie das dorthin gekommen ist, muss an dieser Stelle leider unbeantwortet bleiben. Aber ein beherztes SQL-Skriptlein

UPDATE Campsites SET DateModified = DateCreated WHERE DateModified IS NULL

macht alles wieder ganz. Jetzt gibt's auch keine Exception in unseren Batch-Queries mehr Laughing

Oli

Comments are closed

About Oliver

shades-of-orange.com code blog logo I build web applications using ASP.NET and have a passion for javascript. Enjoy MVC 4 and Orchard CMS, and I do TDD whenever I can. I like clean code. Love to spend time with my wife and our children. My profile on Stack Exchange, a network of free, community-driven Q&A sites

About Anton

shades-of-orange.com code blog logo I'm a software developer at teamaton. I code in C# and work with MVC, Orchard, SpecFlow, Coypu and NHibernate. I enjoy beach volleyball, board games and Coke.