IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

NHibernate Discussion :

NHibernate : A l'aide, svp


Sujet :

NHibernate

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 18
    Points : 8
    Points
    8
    Par défaut NHibernate : A l'aide, svp
    Bonsoir à toutes et à tous,

    je dois organiser mon app asp.net (C#, postgres) avec NHibernate.
    Je commence donc par faire des tuto... déjà ca coince.

    1. Je crée un nouveau site web

    2. J'ajoute les références NHibernate et Postgres

    3. Je configure NHibernate dans mon web.config, ca donne ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    <configSections>
        <section
            name="hibernate-configuration"
            type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"/>
      </configSections>
     
      <hibernate-configuration xmlns="urn:nhibernate-configuration-2.0">
        <session-factory name="nhibernate.current_session">
          <property name="dialect">NHibernate.Dialect.PostgreSQLDialect</property>
          <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
          <property name="connection.driver_class">NHibernate.Driver.NpgsqlDriver</property>
          <property name="connection.connection_string">Server=localhost;Database=tutriel_NHibernate;User ID=pg_user;Password=pg2stUSs;Encoding=UNICODE</property>
          <mapping assembly="NHibernateClasses" />
          <mapping resource="User.hbm.xml" assembly="NHibernateClasses" />
        </session-factory>
      </hibernate-configuration>
    4. Je crée une table Users dans ma base de donnée

    5. Je crée une classe User
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    namespace NHibernateClasses
    {
        public class User
        {
            private string id;
            private string userName;
            private string password;
            private string emailAddress;
            private DateTime lastLogon;
     
            public User()
            {
            }
     
            public string Id
            {
                get { return id; }
                set { id = value; }
            }
     
            public string UserName
            {
                get { return userName; }
                set { userName = value; }
            }
     
            public string Password
            {
                get { return password; }
                set { password = value; }
            }
     
            public string EmailAddress
            {
                get { return emailAddress; }
                set { emailAddress = value; }
            }
     
            public DateTime LastLogon
            {
                get { return lastLogon; }
                set { lastLogon = value; }
            }
        }
    }
    6. Je crée un fichier User.hbm.xml pour mapper mon objet User
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <?xml version="1.0" encoding="utf-8" ?>
    <hibernate-mapping xmlns="urn:nhibernate-mapping-2.0"
                       assembly="NHibernateClasses" namespace="NHibernateClasses">
      >
     
      <class name="NHibernateClasses.User" table="users">
        <id name="Id" column="LogonId" type="String" length="20">
          <generator class="assigned" />
        </id>
        <property name="UserName" column="Name" type="String" length="40"/>
        <property name="Password" type="String" length="20"/>
        <property name="EmailAddress" type="String" length="40"/>
        <property name="LastLogon" type="DateTime"/>
      </class>
    </hibernate-mapping>
    7. A ce stade, toutes les étapes du mapping sont réalisées...

    TEST :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
            ISession session = NHibernateHelper.GetCurrentSession();
            ITransaction tx = session.BeginTransaction();
     
            User newUser = new User();
            newUser.Id = "joe_cool";
            newUser.UserName = "Joseph Cool";
            newUser.Password = "abc123";
            newUser.EmailAddress = "joe@cool.com";
            newUser.LastLogon = DateTime.Now;
     
            session.Save(newUser);
            tx.Commit();
    Resultat
    exception levée par session.Save(newUser) :
    MappingException : Unknow Entity User

    Je suis sous VS2005 avec le FrameWork 2.0 la derniere version de NHibernate....

    Je me dis que la mapping ne doit pas se faire correctement, j'entend parler de la propriété du fichier XML Build Action = Embedded, elle n'est dispo sous VS2003.
    Alors j'ai créé une bibliotheque de classe NHibernateClasses et j'ai mis la classe User et son fichier mapping User.hbm.xml... sans resultat...
    J'ai également testé avec un fichier de ressource dans lequel je référence mon fichier User.hbm.xml... sans succè...

    Voilà, si quelqu'un à une idée moi je seche...

    Merci d'avance

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    J'ai le même problème ...

    Visiblement le mappig NHibernate n'est pas fait ;-(

    Alors si queleu'un a un sollution ?

    Merci et bonne journée
    Rdemont

  3. #3
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    Effectivement il faut que les fichiers hbm.xml soit en tant que Embeded Resource, ca m'étonne que cette option ne soit pas dispo sous vs2003, je suis sous vs2005 et elle est dispo alors je ne peux pas vous dire

Discussions similaires

  1. Aide svp pour un fontion d'appel de menu
    Par setea7 dans le forum Langage
    Réponses: 2
    Dernier message: 02/10/2005, 01h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo