[Tip] NHibernate und CastleProject[ActiveRecord]

März 22, 2007 on 5:34 pm | In Artikel / HowTo's | 2 Comments

Es gab bisher eine Sache die mich davon abgehalten hat (N)Hibernate zu benutzen, unzwar das aufwendige XML-Mapping. Aber wie ich jetzt gelesen habe braucht man das nicht mehr, denn es gibt das sogenannte CastleProject mit seinem wunderbaren Unterprojekt ActiveRecord. Dieses erlaubt es direkt in meinen Geschäftsobjekten die Properties mit Attributen zu versehen wie zum Beispiel:

[Property("Name")]
public string Name
{
get { return _name; }
set { _name = value;}
}

Damit weiss Hibernate das es das Property Name auf die selbige Spalte in der Datenbanktabelle mappen muss und fertig. Genial, kein aufwendiges XML-Mapping mehr, das wars worauf ich gewartet habe ;)

Zum probieren einfach mal den "Getting Started" Guide ausprobieren, ist recht informativ.

Noch ein Tip zur Demo-Anwendung:

Ich hatte einige Probleme die zum laufen zu bewegen. Die Demo will standardmäßig die 3 Tabellen selbst anlegen, was bei den ersten beiden auch funktioniert hat. Nur die 3. Tabelle "User" musste ich von Hand erstellen, weil es da ein Syntax Fehler gab in der Mysql-Anfrage.

Da ich keinen MS-SQL2000 Server habe wollte ich MySQL 4.x benutzen, was aber erst nicht ging, da er mir immer einen Syntaxfehler brachte sobald die Anwendung eine Anfrage an die DB absenden wollte. Ich hatte es zunächst auf den etwas veralteten "Mysql/.Net Connector" geschoben (1.0.7) und mir den neuen (5.0) runtergeladen mit welchem ich aber nicht mal eine Verbindung hinbekam. Wieder mit dem alten Connector und nach mehreren Stunden rumprobieren habe ich dann festgestellt das man an das Attribut für die Klassen noch den optionalen Parameter "Tabellenname" anhängen muss, der in der Demo nicht benutzt wurde. Siehe hier:

vorher:

[ActiveRecord]
public class Blog : ActiveRecordBase

nachher:

[ActiveRecord("blog")]
public class Blog : ActiveRecordBase

Nachdem ich dann bei allen 3 Klassen den Tabellenname-Parameter angegeben hatte ging es sofort. Der alte Connector geht übrigens auch mit MySQL5.

Viel Spass beim stricken :)

P.S. Das Syntax-Highlighting Plugin hier ist auch nicht so das wahre, kennt da jemand ein besseres?

2 Kommentare »

RSS Feed für Kommentare zu diesem Artikel. TrackBack URI

  1. Fürs Highlighting kann ich http://code.google.com/p/google-code-prettify/ empfehlen. Ist zwar nur Javascript aber das entlastet dann den Server wenigstens ;)

    Einfach die JavaScript-Datei einbinden und alles was Code werden soll in “pre”-Tags packen.

    int main ( int argc, char * * argv )
    {
    return 1;
    }

    Kommentar by Jörg — 5. April 2007 #

  2. (Wolle im vorherigen Post eigentlicht das “pre”-Tag mitschreiben .. wurde aber entfernt beim posten.)

    … und den Rest machst du dann mit CSS hübsch.

    pre.prettyprint {
    margin: 2em;
    padding: 1em;
    border: 1px solid gray;
    /* und was du sonst noch brauchst ;) */
    }

    Kommentar by Jörg — 5. April 2007 #

Hinterlasse einen Kommentar

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds. Valid XHTML and CSS. ^Top^