2012-10-01 6 views
0

Il m'a fallu tellement de temps. Je suis perdu dedans. Je fais lire le programme à partir d'un XML et le désérialiser en Object avec la clé primaire 'id'. Mais en utilisant à la fois 'SaveOrUpdate' et la méthode 'Save' je ne peux pas insérer les données dans la base de données. et Log4Net pas d'erreur. aucun journal d'insertion. aucune exception n'est survenue. Quelqu'un m'aide.nhibernate ne peut pas enregistrer ou SaveOrUpdate

Aujourd'hui, j'ai essayé d'ajouter une clé primaire 'HotelId' dans la table et son identité, et ça marche. Comment le faire fonctionner sans clé primaire supplémentaire. car l'ID en XML est unique. donc je ne veux pas ajouter de clé primaire supplémentaire.

fllowing fait partie de * .hbm.xml

<id name="id" column="id" type="string" > 
    <generator class="assigned"/> 
    </id> 
    <property name="dateUpdated" column="dateUpdated" type="DateTime" /> 
    <property name="name" column="name" type="string" /> 
    <property name="address" column="address" type="string" /> 
    <property name="zip" column="zip" type="string" /> 

alors que j'ajouter un primaire supplémentaire non en XML, il fonctionne comme suit:

<id name="Id" column="HotelId" type="int" unsaved-value="0" > 
    <generator class="native"/> 
    </id> 
    <property name="id" column="id" type="string" /> 
    <property name="dateUpdated" column="dateUpdated" type="DateTime" /> 
    <property name="name" column="name" type="string" /> 
    <property name="address" column="address" type="string" /> 
    <property name="zip" column="zip" type="string" /> 
+0

Un code serait utile –

Répondre

0

ma boule de cristal me dit que vous n'avez pas utilisez transactions.Commit(); ou session.Flush(); pour indiquer à la session que vous avez effectué votre travail et que les modifications sont conservées. J'espère que ce n'est pas cassé

Questions connexes