Unfortunately, the code I pasted in another post was not well
formatted (too much wrapping), but here goes...

Hierarchy:
Raceday
<one-to-many>
Race
<one-to-many>
Result
<one-to-many>Horse
<one-to-many>Driver

    public class RacedayMap : ClassMap<Raceday>
    {
        public RacedayMap()
        {
            Id(x => x.RacedayID).Column("RacedayID");
            Map(x => x.RacedayNr);
            Map(x => x.RDate);
            Map(x => x.TrackCond);
            Map(x => x.TrackValue);
            Map(x => x.Weather);

            References(x => x.Track).Column("TrackID").Cascade.All();
            HasMany(x => x.Races)
                .Cascade.All()
                .Not.LazyLoad()
                .Inverse()
                .AsList()
                .Access.CamelCaseField(Prefix.Underscore);
        }
    }

    public class RaceMap : ClassMap<Race>
    {
        public RaceMap()
        {
            Id(x => x.RaceID).Column("RaceID");
            Map(x => x.RaceNr);
            Map(x => x.RaceType);
            Map(x => x.StartMethod);
            Map(x => x.HorseType);

            References(x => x.Raceday)
                .Column("RacedayID")
                .Cascade.All();
            HasMany(x => x.Results)
                .Cascade
                .AllDeleteOrphan()
                .Not.LazyLoad()
                .Inverse()
                .AsList()
                .Access.CamelCaseField(Prefix.Underscore);
        }
    }
    public class ResultMap : ClassMap<Result>
    {
        public ResultMap()
        {
            Id(x => x.ResultID).Column("ResultID");
            Map(x => x.ResultNr);
            Map(x => x.Startnr);
            Map(x => x.Rail);
            Map(x => x.Distance);
            Map(x => x.Kmtime);
            Map(x => x.Tottime);
            Map(x => x.Price);
            Map(x => x.Odds);

            References(x => x.Race).Column("RaceID").Cascade.All();
            References(x =>
x.Horse).Column("HorseID").Cascade.SaveUpdate();
            References(x =>
x.Driver).Column("DriverID").Cascade.SaveUpdate();
        }
    }

    public class HorseMap : ClassMap<Horse>
    {
        public HorseMap()
        {
            Id(x => x.HorseID).Column("HorseID");
            Map(x => x.H_DB);
            Map(x => x.HNameNor);
            Map(x => x.YOB);

            References(x =>
x.BirthCountry).Column("CountryCode").Cascade.SaveUpdate();
        }
    }

    public class DriverMap : ClassMap<Driver>
    {
        public DriverMap()
        {
            Id(x => x.DriverID).Column("DriverID");
            Map(x => x.D_DB);
            Map(x => x.DNameNor);
            Map(x => x.DNameSwe);
            Map(x => x.Amateur);
            Map(x => x.License);
            Map(x => x.Rikstoto_Driver_ID);

            References(x =>
x.BirthCountry).Column("CountryCode").Cascade.SaveUpdate();
        }
    }

FAILING METHOD CALL (I want to search for a horse attached to session
either if it's persisted yet or not. My assumption was that the
session would first look in it's in-memory attached objects (without
persisting them first), then the DB if not found, but that assumption
is probably wrong?).

    result.Horse = HorseDao.GetHorseByHorseSearchData(hsd, session);

        public static Horse GetHorseByHorseSearchData(HorseSearchData
hsd, ISession session)
        {
            IList<Horse> horses = session.CreateCriteria<Horse>()
                .Add(Restrictions.Eq("BirthCountry",
CountryDao.GetCountry_ByCountryCode(hsd.CountryCode)))
                .Add(Restrictions.Eq("H_DB", hsd.Horsename_DBstring))
                .Add(Restrictions.Disjunction()
                    .Add(Restrictions.Eq("YOB", hsd.YOB))
                    .Add(Restrictions.Eq("YOB", null))
                    )
                .AddOrder(Order.Asc("HorseID"))
                .List<Horse>();

            if (horses.Count > 0)
                return horses[0];

            return new Horse();
        }

On 14 Okt, 15:44, Jason Meckley <[email protected]> wrote:
> a picture, code in this case, is worth 1K words :) provide the code
> with relevant mappings and we can help.

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
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.

Reply via email to