Tuesday, 3 January 2017

Fluent NHibernate “Could not resolve property”

So this error comes when your n-hibernate query is not proper sql query.

For example

your query is
var riAlbum = session.QueryOver<Album>()
                .Where(x => x.Name == albumName && x.Artist.Name == artist)
                .List().FirstOrDefault();
this query will convert into sql as below
select
    Album.*
from
    Album
where
    Album.Name = 'SomeAlbumName' and
    Album.Artist.Name = 'SomeArtistName'
so that is wrong as last line 'Album.Artist.Name' is not proper sql. so u have to apply join in your n-hibernate query.

var riAlbum = 
    session.QueryOver<Album>()
               .Where(a => a.Name == albumName)
           .JoinQueryOver(a => a.Artist)
               .Where(ar => ar.Name == artistName)
           .List()
           .FirstOrDefault();



No comments:

Post a Comment