Frage

Ich führe ein Standard -Update in NhiberNate auf eine einzelne Eigenschaft durch. Im Einsatz der Transaktion scheint das SQL -Update jedoch alle Felder festzulegen, die ich auf der Tabelle zugeordnet habe, obwohl sie sich nicht geändert haben. Sicherlich kann dies bei Nhibernate kein normales Verhalten sein? Mache ich etwas falsch? Vielen Dank

using (var session = sessionFactory.OpenSession())
           {
               using (var transaction = session.BeginTransaction())
               {
                   var singleMeeting = session.Load<Meeting>(10193);
                   singleMeeting.Subject = "This is a test 2";

                   transaction.Commit();
               }
           }
War es hilfreich?

Lösung

Dies ist das normale Verhalten. Sie können versuchen hinzuzufügen dynamic-update="true" zu Ihrer Klassendefinition, um dieses Verhalten zu überschreiben.

Andere Tipps

Brunnen. Ja, das ist ein normales Verhalten für Nhibernate. Sie können generiertes Attribut für Ihre Eigenschaften verwenden, um das Verhalten zu ändern. Details zu Ayende's Blog.

Warum ist diese Standardeinstellung darauf zurückzuführen, dass Sie bei Dynamik Ihren Abfrageplan nicht zwischenstrahlen lassen? Normalerweise macht es Ihnen nichts aus, dass Sie nur wenige Bytes über Hochgeschwindigkeitsnetzwerkverbindung zwischen Ihrem Anwendungsserver und Ihrer Datenbank senden. Es sei denn, Sie sparen lange Saiten, in denen diese Einstellung perfekt geeignet ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top