views:

1450

answers:

0

Hello there, Im having a problem creating a projection for my nhibernate detachedcriteria object.

I have a class Spa which is linked to table Address.

Address has a field called City which is a string.

public class Spa : IAggregateRoot

{ [BelongsTo("AddressID", Cascade = CascadeEnum.All)] public Address Address { get; set; } }

My ultimate goal is to get a distinct list of City names.

If i could get all spas with distinct cities i would be happy too.

All my attempts have been for naught and havent found any helpful posts.

So far i've tried:

            DetachedCriteria query = DetachedCriteria.For<Spa>()
            .CreateAlias("Address", "A")

        query.SetProjection(
         Projections.Distinct(Projections.ProjectionList()
         .Add(Projections.Alias(Projections.Property("Address"), "A"))));

        var Spas = ActiveRecordMediator<Spa>.FindAll(query);

I know the above is not correct, just trying to find somewhere to start.

Any help would be appreciated. Also any simple projections tutorials would be appreciated, cant seem to find anything straight forward out there.

I also tried, but got cast error, looking into it:

DetachedCriteria query = DetachedCriteria.For() .CreateAlias("Address", "A") .SetProjection(Projections.Distinct(Projections.Property("A.City")));