nhibernate, impossible de résoudre la propriété
J'ai un problème avec NHibenate. Quand je lance queryover, j'obtiens une erreur "impossible de résoudre la propriété: l'Utilisateur.Nom: MegaOnlineChat.De base.Les entités.Message".Ce que je fais mal?
Objets de l'entité
public class EntityObject<TId>
{
public virtual Int32 Id { get; set; }
}
public class User:EntityObject<Int32>
{
public virtual String Name { get; set; }
public virtual String Password { get; set; }
public virtual Boolean Admin { get; set; }
public virtual IList<Message> Messages { get; set; }
}
public class Message:EntityObject<Int32>
{
public virtual String Text { get; set; }
public virtual User User { get; set; }
public virtual DateTime Date{ get; set; }
}
Cartographie
public class UserMapping:ClassMap<User>
{
public UserMapping()
{
Table("Users");
Id(m => m.Id).GeneratedBy.Native();
Map(m => m.Name).Unique().Not.Nullable();
Map(m => m.Admin).Not.Nullable();
Map(m => m.Password).Not.Nullable();
HasMany(m => m.Messages).KeyColumn("User_id");
}
}
public class MessageMapping:ClassMap<Message>
{
public MessageMapping()
{
Table("Messages");
Id(m => m.Id).GeneratedBy.Native();
Map(m => m.Text).Not.Nullable();
Map(m => m.Date).Not.Nullable();
References(m => m.User, "User_id").Not.Nullable();
}
}
QueryOver
NHibernateSession.QueryOver<Message>().Where(x => x.User.Name == name).List<Message>().Last();
source d'informationauteur valik
Vous devez vous connecter pour publier un commentaire.
QueryOver n'est pas la même que la requête Linq fournisseur. Il serait plus facile à faire:
Mais si vous souhaitez utiliser QueryOver, vous devrez explicitement rejoindre les relations que vous souhaitez naviguer:
vous pourriez aussi le faire à l'aide d'un alias d'utilisateur