Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

NHibernate error

Empfohlene Antworten

Veröffentlicht

Hallo.

ich entwickle ein Programm weiter, welches über das NHibernate-Framework auf eine MSSQL-Datenbank zugreift. Nun hab ich das Problem, dass mir das NHibernate-Framework eine Exception wirft. Ich hab auch schon die Stelle im Code ausgemacht, die für die Exception verantwortlich ist.

Wenn ich bei nachfolgendem Code, die auskommentierten Zeilen einkommentiere, dann tritt der Fehler auf, ansonsten funktioniert der Code.


Map(folder => folder.Flags, "Statusflags");

Map(folder => folder.SearchTerm, "Suchbegriff")

     .Not.Nullable();

//MapAny(folder => folder.Parent, "Parent_ID", "EintragArt")

//    .AddMetaValue<Folder>()

//    .AddMetaValue<Project>();

Die Exception, die ich bekomme lautet:

{"could not execute query\r\n[ SELECT this_.ID as ID29_0_, this_.EintragArt as EintragArt29_0_, this_.Parent_ID as Parent3_29_0_, this_.ErstellungDatum as Erstellu4_29_0_, this_.LetzteAenderungDatum as LetzteAe5_29_0_, this_.ErstellungBen as Erstellu6_29_0_, this_.LetzteAenderungBen as LetzteAe7_29_0_, this_.RechteFlags as RechteFl8_29_0_, this_.NurSichtbarFuer_ID as NurSicht9_29_0_, this_.Statusflags as Statusf10_29_0_, this_.Suchbegriff as Suchbeg11_29_0_ FROM DokumentBaum this_ ]\r\n[sql: SELECT this_.ID as ID29_0_, this_.EintragArt as EintragArt29_0_, this_.Parent_ID as Parent3_29_0_, this_.ErstellungDatum as Erstellu4_29_0_, this_.LetzteAenderungDatum as LetzteAe5_29_0_, this_.ErstellungBen as Erstellu6_29_0_, this_.LetzteAenderungBen as LetzteAe7_29_0_, this_.RechteFlags as RechteFl8_29_0_, this_.NurSichtbarFuer_ID as NurSicht9_29_0_, this_.Statusflags as Statusf10_29_0_, this_.Suchbegriff as Suchbeg11_29_0_ FROM DokumentBaum this_]"}

Wenn ich mir von der InnerException den StackTrace anschaue steht da folgendes:

bei System.ThrowHelper.ThrowKeyNotFoundException()

bei System.Collections.Generic.Dictionary`2.get_Item(TKey key)

bei NHibernate.Type.MetaType.NullSafeGet(IDataReader rs, String name, ISessionImplementor session, Object owner)

bei NHibernate.Type.AnyType.Hydrate(IDataReader rs, String[] names, ISessionImplementor session, Object owner)

Ich hab auch schon versucht den, durch NHibernate erzeugen, Query direkt im SQL-Server Management Studio auszuführen, und da funktioniert alles, wenn ich "[" und "]" entferne. Ich denke mal, dass es daran aber nicht liegt.

[ SELECT this_.ID as ID29_0_, this_.EintragArt as EintragArt29_0_, this_.Parent_ID as Parent3_29_0_, this_.ErstellungDatum as Erstellu4_29_0_, this_.LetzteAenderungDatum as LetzteAe5_29_0_, this_.ErstellungBen as Erstellu6_29_0_, this_.LetzteAenderungBen as LetzteAe7_29_0_, this_.RechteFlags as RechteFl8_29_0_, this_.NurSichtbarFuer_ID as NurSicht9_29_0_, this_.Statusflags as Statusf10_29_0_, this_.Suchbegriff as Suchbeg11_29_0_ FROM DokumentBaum this_ ]

Wenn ich den Query im Management Studio ausführe, sieht das Ergebnis wie im Anhang dargestellt aus. Was auch ok ist.

Meine Frage ist nun also: Was mache ich falsch? Warum funktioniert es nicht? Ich benötige die beiden auskommentierten zeilen.

  • Autor

Hab den Fehler mittlerweile gefunden.

Für diejenigen, die es interessiert:

Im Mapping von NHibernate hat einen Entität gefehlt.

Nachfolgende Zeile hat das Problem gelöst.


     .AddMetaValue<Contact>()

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.