NHibernate - Filling child entities from an unmaped class

I've a question about a code i've write to call a procedure using NHibernate, fill an unmaped entity and then fetch a list of child entities.

I'll show you an example. Three entities: house, interest, user

class house
string name; string title; string description;
list<interest> users;

I use the interest as a class for the relationship between house and users because i've a few additional properties like ranking, comment that i need to save.

class interest
house houseinterested;
user userinterested;
int ranking; string descriptions;

And the user class

class user
string name

Because i need to query all the houses withing an area range, i'm doing that calculations on a stored procedure (sending the lat/long), and then i return an extra property distance that i need to display on the views.

I dont want to map the distance to the table (because i just retrieve it, i never store that value), so i've created another entity similar to house but with the distance property (houseview), and i'm querying the procedure with CreateSQLQuery:

const string sql = "call imovel_within_area (:@orig_lat, :@orig_long, :@dist, :@take, :@skip, :@quartos, :@precomin, :@precomax)";
            var query = MvcApplication.Session.CreateSQLQuery(sql)
                .SetParameter("@dist", distancia)
                .SetParameter("@orig_lat", latitude) //-25.363882m
                .SetParameter("@orig_long", longitude) // 131.044922m
                .SetParameter("@take", resultados)
                .SetParameter("@skip", ((pagina-1 * resultados)))
                .SetParameter("@quartos", quartos.Value)
                .SetParameter("@precomin", precomin.Value)
                .SetParameter("@precomax", precomax.Value);
                query.SetResultTransformer(NHibernate.Transform.Transformers.AliasToBean(typeof(Core.Domain.houseview)));

Now i want to fill the list of users interested.

foreach (var housein houses.List<Core.Domain.houseview>())
            {
              house.Where(x => x.Id == house.Id).ToList().First().Interest =
              MvcApplication.Session.QueryOver<Core.Domain.House>()
              .Where(x => x.Id == imovel.Id).List().First().Interessados;
            }

I never had to return a unmaped column from a query, so i'm not quite sure how to do this or if this is acceptable on performance issues.

I would really appreciate a few advices!

Thanks

Answers


List<Core.Domain.houseview> houseviews = ...;

// load all wanted houses into session cache
MvcApplication.Session.QueryOver<Core.Domain.House>()
    .WhereRestrictionOn(x => x.Id).In(houseviews.Select(hv => hv.Id).Tolist())
    .Fetch(x => x.Interessados).Eager
    .List()

foreach (var view in houseviews)
{
    view.Interessados = Session.Get<house>(view.House.Id).Interessadoes;
}

Need Your Help

JSON Parsing results in unrecognized selector sent

objective-c json nsjsonserialization

I am trying to parse the following with my JSON parser. I tried several ways but the actual JSON Serialization NSJSONSerialization always throws the error (well actually it is thrown on the NSArray

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.