verwendetes Datenbanksystem: Microsoft SQL 2005 Express
Guten Abend,
ich bin gerade auf der Suche nach einem Datenbankpersistenzwerkzeug unter C#, und bin auch durch meine Vorbelastung mit Java, auf die NHibernate Library aufmerksam geworden.
Ich wollte mir zunächst ein kleines Testprojekt basteln, welches nur auf einer Relation operiert(sie soll Agent heissen) und Instanzen gleichen Namens in/aus der Datenbank serialisiert.
Die Mappinginformationen werden momentan über die Methode Configuration.LoadFile() geladen (auch weil ich mit dem Zeugs das erste mal arbeite). Leider bekomme ich eine MappingException mit dem Hinweis "Das Stammelement ist nicht vorhanden".
Haben wir hier NHibernate-Spezialisten in der Runde?
Folgende Daten liegen dem Fehler zugrunde:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="MyProject"
namespace="MyProject.Domain">
<!-- more mapping info here -->
<!-- mapping for Class "Agent" -->
<class name="Agent">
<id name="agent_id">
<generator class="guid" />
</id>
<property name="Name" />
<property name="Title" />
<property name="DateOfBirth" />
<property name="DateOfEmployment" />
</class>
</hibernate-mapping>
Configuration cfg = new Configuration();
cfg.AddFile("Agent.hbm.xml");
Dir fehlt das Attribute "table" im class Node.
Hast Du es schon mal in Invist als Mapper probiert. Bietet sich an, falls Du eine exitierende Datenbank hast und daraus gerne die KLasse generieren möchtest.
Guten Tag,
vielen Dank für den Link. In diesem speziellen Fall habe ich jedoch keine existierende Datenbank, die ich übernehmen will. Ich habe jedoch deinen Tip aufgenommen und einmal in die Agent.hbm.xml eingebaut. Dies brachte jedoch keinen Erfolg (Ich meine aber auch gelesen zu haben, dass von einem gleichnamigen Relationsnamen ausgegangen wird, sofern keiner angegeben ist).
Hat jemand noch eine Idee? Gibt es eine Möglichkeit für mich, an mehr Informationen zu kommen?
Grüße
Wie sieht denn Deine Datenbank aus. Ich gehe jetzt mal davon aus, dass Die Tabellen genau so heisst wie Deine Klasse und jeden Property auch dem Namen der Spalten entsprechen.
Hallo Mirco,
ja dies ist korrekt. Die entsprechenden Felder in der Datenbanktabelle leiten sich aus der Namenskonvertion der Klasse ab.
Gruß Sebastian.