MySQL & NHibernate. Wie beheben Sie den Fehler: Spalte 'ReservedWord' gehört nicht zur Tabelle ReservedWords?

8

"Ich bekomme einen seltsamen Fehler bei der Verwendung von NHibernate. Und ich weiß nicht, was diesen Fehler verursacht. Ich bin neu im ganzen Visual Studio und NHibernate, aber nicht im Hibernate. Ich habe Hibernate in der Vergangenheit in Java-Projekten verwendet.

Jede Hilfe würde es begrüßen, wenn sie mir zeigt, wo mein Fehler liegt.

Ich verwende Visual Studio 2008 SP1 mit Mysql 5.1.

Unten ist der Code, den ich verwende. "

Der vollständige Code und Beispiele sind hier veröffentlicht: Ссылка

    
Eduardo Xavier 29.06.2009, 23:47
quelle

6 Antworten

3

Meine erste Vermutung ist, dass NHibernate einen Spalten- und / oder Tabellennamen als reserviertes Wort identifiziert. Ihre Klasse namens "Hibernate" könnte ein wahrscheinlicher Täter sein, aber ohne weitere Informationen über Ihren Fehler ist es ein bisschen schwer zu finden. Einige Vorschläge:

  1. Versuchen Sie, die Tabelle und die Spalten sowohl in der Datenbank als auch in der Konfiguration umzubenennen und einen Test zu geben
  2. Laden Sie log4net ( Ссылка ) herunter und checken Sie Ссылка , um es für nhibernate zu konfigurieren. Stellen Sie es auf debug und graben Sie in die Protokolldatei ein und sehen Sie die vollständige Information über den StackTrace / Fehler, den Sie erhalten.
Knut Haugen 30.06.2009, 12:37
quelle
17

Für alle NHibernate / Fluent NHibernate-Neulinge wie mich, FCastellanos 'Lösung funktionierte auch für mich (ich habe den Fehler auch unter Windows), und der Fluent NHibernate Weg, um diese Konfiguration hinzuzufügen ist:

%Vor%     
Andy Morris 30.07.2009 03:12
quelle
10

Ich habe den gleichen Fehler, aber ich benutze MySQL + NHibernate (2.1.0GA) + Mono (2.4) unter Ubuntu und dieser Link hat mir geholfen, hoffe, es funktioniert für Sie.

Der Schlüssel ist, dies in Session-Factory

zu verwenden %Vor%

Ссылка

das war es:)

    
FCastellanos 23.07.2009 05:27
quelle
5

Dies behebt denselben Fehler, wenn ActiveRecord für NHibernate verwendet wird. Das relevante Bit ist key="hbm2ddl.keywords" value="none" und das geht in deine web.config.

%Vor%     
Stuntbeaver 26.10.2009 15:31
quelle
1

Wenn Sie dies programmgesteuert tun, sollten Sie dies folgendermaßen tun:

%Vor%     
_NT 29.09.2009 08:58
quelle
0

Ich habe gerade dieses Problem auch getroffen. Ich habe das getan:

Ссылка

was eine Codeänderung zu NHibernate ist, aber für mich funktioniert.

    
Chris Brandsma 19.08.2009 21:34
quelle