NHibernate Fluent “n'a pas Pu résoudre la propriété”

J'ai lu beaucoup de questions à propos de ce même erreur mais aucune depuis pour correspondre à mon problème exact. J'essaye d'accéder à la propriété d'un objet, lui-même partie d'un objet racine, à l'aide de Fluent NHibernate. Quelques réponses pour dire que j'ai besoin d'utiliser les projections, d'autres que j'ai besoin d'utiliser la rejoindre, et je pense que cela devrait fonctionner grâce à chargement différé.

Voici deux de mes classes avec la fluidité de la mappages:

Artiste de classe

public class Artist
{
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
    public virtual IList<Album> Albums { get; set; }
    public virtual string MusicBrainzId { get; set; }
    public virtual string TheAudioDbId { get; set; }

    public Artist() { }
}

public class ArtistMap : ClassMap<Artist>
{
    public ArtistMap()
    {
        LazyLoad();
        Id(a => a.Id);
        Map(a => a.Name).Index("Name");
        HasMany(a => a.Albums)
            .Cascade.All();
        Map(a => a.MusicBrainzId);
        Map(a => a.TheAudioDbId);
    }
}

Album de classe

public class Album
{
    public virtual int Id { get; set; }
    public virtual Artist Artist { get; set; }
    public virtual string Name { get; set; }
    public virtual IList<Track> Tracks { get; set; }
    public virtual DateTime ReleaseDate { get; set; }
    public virtual string TheAudioDbId { get; set; }
    public virtual string MusicBrainzId { get; set; }

    public Album() { }
}

public class AlbumMap : ClassMap<Album>
{
    public AlbumMap()
    {
        LazyLoad();
        Id(a => a.Id);
        References(a => a.Artist)
            .Cascade.All();
        Map(a => a.Name).Index("Name");
        HasMany(a => a.Tracks)
            .Cascade.All();
        Map(a => a.ReleaseDate);
        Map(a => a.TheAudioDbId);
        Map(a => a.MusicBrainzId);
    }
}

Et l'erreur qui se produit lorsque ce code est interprété:

var riAlbum = session.QueryOver<Album>()
                .Where(x => x.Name == albumName && x.Artist.Name == artist)
                .List().FirstOrDefault();

L'erreur se produit lorsque Couramment NHibernate essaie de résoudre le x.De l'artiste.Nom de la valeur:

{"n'a pas pu résoudre la propriété: Artiste.Nom de: l'Album"}

Quelle serait la bonne façon de le faire?

OriginalL'auteur Astaar | 2014-12-17