2009-01-07 14 views
0

Je suis en train d'utiliser NHibernate pour accéder aux données, et j'ai 2 entités simples qui ressemblent à ceci:question avec NHibernate

public class User : IEntity 
{ 
    public int ID { get; set; } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public string Email { get; set; } 
    public string Logon { get; set; } 
    public string Password { get; set; } 
    public ICollection<Role> Roles { get; set; } 

    public bool IsNew 
    { 
     get { return (ID == 0) ? true : false; } 
    } 

    public User() 
    { 
     Roles = new List<Role>(); 
    } 
} 

public class Role : IEntity 
{ 
    public int ID { get; set; } 
    public string RoleName { get; set; } 
    public string RoleDescription { get; set; } 

    public bool IsNew 
    { 
     get { return (ID == 0) ? true : false; } 
    } 
} 

Ma question ...... comment puis-je construire un Criteria si je veux trouver un utilisateur qui contient un rôle avec un ID de 1 dans sa collection Roles?

+0

pour le rôle de la classe pourquoi avez-vous RoleName et description au lieu de simplement Nom & description? Vous pouvez également ajouter IsNew dans une classe de base. –

+0

Que gardez-vous avec l'interface IEntity? Ceci est une autre question mais pourriez-vous s'il vous plaît asnwer. J'aime apprendre des techniques –

Répondre

1

Peu importe, cela a fini par être relativement simple à faire:

// role was the role passed in to my Find method. 
var criteria = DetachedCriteria.For(typeof (User)) 
      .CreateCriteria("Roles") 
      .Add(Restrictions.Eq("ID", role.ID));