2010-04-30 10 views
1

J'ai 2 entités:Critères NHibernate Recherche par Id

public class Authority : Entity 
{ 
    [NotNull, NotEmpty] 
    public virtual string Name { get; set; } 

    [NotNull] 
    public virtual AuthorityType Type { get; set; } 

} 

public class AuthorityType : Entity 
{ 
    [NotNull, NotEmpty] 
    public virtual string Name { get; set; } 

    public virtual string Description { get; set; } 
} 

Maintenant, je souhaite trouver toutes les autorités du référentiel par type. J'ai essayé de le faire comme ceci:.

public IList<Authority> GetAuthoritiesByType(int id) 
    { 
     ICriteria criteria = Session.CreateCriteria(typeof (Authority)); 
     criteria.Add(Restrictions.Eq("Type.Id", id)); 
     IList<Authority> authorities = criteria.List<Authority>(); 
     return authorities;    
    } 

Cependant, je reçois une erreur que quelque chose ne va pas avec le SQL (« ne pouvait pas exécuter la requête » Le InnerException suit: { "nom de colonne non valide « TypeFk » . \ r \ nInvalid nom de la colonne 'TypeFk'. "}

Un conseil? Toute autre approche?

Meilleurs voeux, Andrew

Répondre

3

Il ressemble à votre fichier de mappage pour l'entité Autorité est l'association du Type propriété d'une colonne nommé TypeFk dans n'importe quelle table à laquelle l'entité d'autorité est mappée. Pour une raison quelconque, cette colonne n'est pas là.

Il peut être utile de voir vos fichiers de mapping aussi.

+0

Merci de pointer vers la bonne direction. J'utilise Fluent et j'ai incorrectement mappé ForeignKeyConvention. – user315648

+2

Content de l'entendre. Peut-être que vous pouvez aider un brutha et voter et marquer une réponse? Tu sais, ça impressionne les femmes ... et j'ai besoin de toute l'aide que je peux obtenir. : P –

+0

Haha - voici un point pour vous aider à marquer avec toutes les filles foxy ici qui descendent sur le grand représentant d'un mec – Berryl