2011-05-17 5 views
0

Je suis un problème avec NHibernate. J'ai trouvé ce problème dans NHibernate Profiler. Lorsque j'essaie d'insérer un nouvel enregistrement dans la table Il déclenche une instruction de mise à jour pour chaque enregistrement dans la table. Comme si j'ai 1000 enregistrement dans la base de données sur insertion ou mettre à jour sa déclaration de mise à jour de déclenchement pour chaque enregistrement dans la base de données.Nhibernate: Le nouveau record insérer la mise à jour tous les enregistrements existants dans le tableau

Voici mon exemple Voici mon fichier HBM et un exemple de code

<property name="ParentCodeId" column="Parent_Code_ID" not-null="false" /> 
<property name="Code" column="Diagnostic_Code" not-null="false" /> 
<property name="Descr" column="Description" not-null="true" /> 
<property name="Level" column="Level" not-null="true" /> 
<property name="CreatedBy" column="Created_By" not-null="true" /> 
<property name="CreatedDate" column="Created_Date" not-null="true" /> 
<property name="ModifiedBy" column="Modified_By" not-null="false" /> 
<property name="ModifiedDate" column="Modified_Date" not-null="false" /> 
<property name="IsActive" column="Is_Active" not-null="true" /> 

var repository = this.DomainObjectRepositoryFactory.Create<DiagnosticCodeRepository, DiagnosticCode>(); 
repository.BeginTransaction(); 
diagnosticCode.Id = data.DiagnosticCodeId; 
diagnosticCode.ParentCodeId = data.ParentCodeId; 
diagnosticCode.Code = data.Code; 
diagnosticCode.Descr = data.Descr; 
diagnosticCode.IsActive = data.IsActive; 
diagnosticCode.Level = data.Level; 

// save Diagnostic code 
id = repository.Save(diagnosticCode); 
repository.Commit(); 

Toute idée?

Merci Imran

+1

vous devez envoyer un code juste pour mieux comprendre –

+0

Pouvez-vous montrer la déclaration de mise à jour qui est déclenchée? – psousa

Répondre

0

est diagnosticCode un nouvel objet?

Je ne sais pas si cela est votre problème, mais vous pourriez avoir plus de chance si vous tirez l'objet de la base de données, apporter des modifications, puis enregistrez-le. Vous ne devriez jamais avoir à définir manuellement la propriété id sur vos objets.

Questions connexes