2010-07-07 6 views
1

Je suis nouveau à ce groupe alors excuses si cela a déjà été répondu (J'ai eu un bon coup d'oeil). Je jette un oeil à l'architecture forte pour un projet que je vais bientôt commencer.Sharp Architecture et Fluent NHibernate 1.1

J'expérimente avec l'échantillon Northwind, et je voulais tester une relation auto-référentielle , mais il a découvert Fluent NHibernate 1.1 était nécessaire (voir http://support.fluentnhibernate.org/discussions/help/127-parentchild-...).

J'ai donc recompilé avec la version 1.1 de couramment et rencontré quelques problèmes de avec la classe des employés. La première erreur était le long des lignes de FullName a besoin d'un get. J'ai résolu ceci avec mapping.IgnoreProperty (x => x.FullName); dans la classe EmployeeMap.

Le problème suivant que je n'ai pas réussi à résoudre: Nom de colonne 'Id' incorrect. Je peux voir de la sortie de test qui NHibernate essaie de faire « SELECT top 0 this_.Id », etc. Cependant, le à EmployeeID cartes classe EmployeeMap, donc compterais voir « SELECT top 0 this_.EmployeeID »

mapping.Id(x => x.Id, "EmployeeID") 
      .UnsavedValue(0) 
      .GeneratedBy.Identity(); 

Des idées?

Merci ... Rich

Répondre

0

J'apporté des modifications similaires à un projet de démonstration de mon propre ainsi que le projet Northwind et n'a pas de problème. Avez-vous recompilé le SharpArch.dll en utilisant le nouveau FluentNHibernate.dll?

Cordialement
Dan

+0

Salut Dan, oui, j'ai recompilé le SharpArch.dll. Je pourrais juste essayer de supprimer le tout et recommencer. Salut ... Rich –

0

Vous vos applications de tirent classe de ClassMap <>?

Je n'ai pas travaillé avec le # S, mais nos applications de FnH1.1 ressembler à ceci:

public class EntityMap : ClassMap<Entity> 
{ 

    public EntityMap() 
    { 

     // Single table 
     Table("EntityTable"); 

     // ID 
     Id(x => x.Id, "EntityId") 
      .GeneratedBy 
      .HiLo("NHibernateHilo", "HighId", "1", "EntityId=1"); 

     // References 
     References(x => x.Object, "ReferenceFieldId").Cascade.SaveUpdate(); 

     // Properties 
     Map(x => x.PropertyName, "FieldName"); 

    } 

} 
+0

Salut Ryan, merci pour votre réponse, oui, ils sont dérivés de ClassMap. Je ne l'ai pas vraiment regardé beaucoup plus, car nous allons avec autre chose maintenant. –

1

Pour la petite histoire: j'ai eu le même problème et le problème pour moi était que je devais ajouté une propriété Id supplémentaire à ma classe Employee.

Questions connexes