Ich repariere gerade eine alte Windows-Anwendungen und begegnete NHibernate Fehler. Ich habe gelesen und probiert einige Dinge im Netz, aber am Ende Fehler.NHibernate SaveOrUpdate Fehler
Hier ist mein Code für die ISession:
Public ReadOnly Property session() As ISession
Get
If IsNothing(m_session) Then
m_session = Factory.InitConfiguration.OpenSession()
End If
Return m_session
End Get
End Property
Hier ist mein Code für die Schaltfläche Speichern ist:
Try
session.BeginTransaction()
SetParent(x_object)
'session.clear()
session.Flush()
session.SaveOrUpdate(x_object)
session.Transaction.Commit()
compObj.IsNew = False
Return True
Catch ex As Exception
AppServices.ErrorMessage = ex.Message
session.Transaction.Rollback()
Return False
Finally
'TBA
End Try
das Problem Also hier beginnen, ich habe dieses Datum Spalte als Datum- und AttachmentList .
Der aktuelle Code hat kein Problem, bis der Benutzer im Jahr weniger als 1753. Aber der Code fängt den Fehler richtig und zeigt die Nachricht und wenn der Benutzer weiterhin den Jahr-Tippfehler beheben, wird es fange immer noch den Fehler (während ich bei der Uhr bin, bekomme ich schon den neuen Wert), bis der Benutzer die Anwendung schließt und sie wieder öffnet.
Allerdings, wenn ich die session.clear() auskommentieren, wird es gut tun, kann der Benutzer ihre Tippfehler beheben und weiterhin Datensatz zu speichern, aber wenn der Benutzer die andere Aktion sagen Anlage sagen, wird es eine andere bekommen Error. Die Befestigung Aktion wie folgt:
- Anlage hinzufügen
- Klicken Sie auf Speichern
- hinzufügen Befestigung
- Schaltfläche Speichern
- New Fehler klicken.
So beraten Sie mich auf, was getan werden muss. Ich habe versucht, zu fusionieren, ich habe versucht, zu aktualisieren, zu speichern, zu vertreiben, aber am Ende Fehler. Ich denke mein Problem ist, wie ich die Sitzung arrangiere, ist die Hauptquelle des Problems.
Was ist der Umfang von 'm_session' und' x_object'? Ordnen Sie Ihre Entitäten etwas anderem als DTO zu? –
@A_J Ja, ich ordne die Entitäten auf viele untergeordnete Elemente zu und setze sie als 1 Elternelement. Allerdings ist mein Problem durch Frederic Erklärung gelöst. Sie können sich darauf beziehen, warum. –