Just use the linq provider and it's the exact same.
add using NHibernate.Linq and change context.EstimationItem to session.
EstimationItem
On Thursday, November 8, 2012 4:31:40 AM UTC-7, Christian I. wrote:
>
> I have 2 tables, I'd like place some fields in a result class, but I'm
> stuck. The code I want look like this with Entity Framework :
>
> var res =
> (from p in context.EstimationItem
> join q in ...
> select new EstimationWithDetail
> {
> Estimation = q.Estimation,
> Id = q.Id,
> FullName = q.Customer.FirstName + q.Customer.LastName
>
> }).ToList();
>
> In Nibernate, at this time, I have this, but I'm stuck ...
>
> var res =
> Session.QueryOver<EstimationItem>()
> .JoinQueryOver(x => x.Estimation)
> .Select(
> x => x.Estimation.Reference,
> x => x.Estimation.CreationDate,
> x => x.Price,
> x => x.Estimation.Customer.FirstName,
> x => x.Estimation.Customer.LastName
> )
> .List();
>
> public class Estimation
> {
> public virtual string Reference { get; set; }
> public virtual Customer Customer { get; set; }
> public virtual DateTime CreationDate { get; set; }
> public virtual decimal Total { get; set; }
> public virtual IList<EstimationItem> EstimationItems { get; set; }
> }
>
> public class EstimationItem
> {
> public virtual decimal Price { get; set; }
> public virtual int Quantity { get; set; }
> public virtual Estimation Estimation { get; set; }
> public virtual Product Product { get; set; }
> }
>
> public class EstimationWithDetail
> {
> public string Reference { get; set; } //Estimation.Reference
> public string FullName { get; set; } //concat FirstName and
> LastName from Customer
> public decimal Price { get; set; } //Estimation.Total
> public int Id { get; set; } //Estimation.Id
> public DateTime CreationDate { get; set; } //Estimation.CreationDate
> }
>
> *
> *
>
> *I thirs this too :*
>
> I tried the code but I get this error : *InvalidOperarionException,
> variable 'x' of type 'EstimationItem' referenced from scope '', but it is
> not defined*
>
> var res =
> Session.QueryOver<EstimationItem>()
> .JoinQueryOver(x => x.Estimation)
> .Select(x => new EstimationWithDetail
> {
> Code = x.Estimation.Reference,
> CreationDate = x.Estimation.CreationDate,
> Price = x.Estimation.Total,
> FullName = x.Estimation.Customer.FirstName +
> x.Estimation.Customer.LastName
> })
> .List<EstimationWithDetail>();
>
> *
> *
>
> *And thid*
>
> Estimation a = null;
> Customer b = null;
> var res = Session.QueryOver<EstimationItem>()
> .JoinAlias(c => c.Estimation, () => a)
> .JoinAlias(c => c.Estimation.Customer, () => b)
> .Select(x => new EstimationWithDetail
> {
> Code = a.Reference,
> Id = a.Id,
> FullName = b.LastName
> })
> .List<EstimationWithDetail>();
>
>
--
You received this message because you are subscribed to the Google Groups
"nhusers" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/nhusers/-/0_I4iZ3xuwkJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/nhusers?hl=en.