I set Cacasde.All() on the Reference like this: // Reference back to parent Project References(x => x.Project).Cascade.All() .WithForeignKey("ProjectID").WithColumns("ProjectID");
I get the same error System.IndexOutOfRangeException: Invalid index 6 for this SqlParameterCollection with Count=6.. Its creating the Project row in the database from the test. Here's my class map file public class RouteObjMap : ClassMap<RouteObjNH> { public RouteObjMap() { WithTable("Route"); UseCompositeId() .WithKeyProperty(x => x.ProjectID) .WithKeyProperty(x => x.RouteID); Map(x => x.StartTime); Map(x => x.SlackTime); Map(x => x.VehicleId); Map(x => x.MilesTraveled); // Reference back to parent Project References(x => x.Project).Cascade.All() .WithForeignKey("ProjectID").WithColumns("ProjectID"); // Child List of Route Locations HasMany(x => x.lstRouteLocation) .WithTableName("RouteLocation") .WithForeignKeyConstraintName("ProjectID") .WithForeignKeyConstraintName("RouteID") .KeyColumnNames.Add("ProjectID", "RouteID"); } And my test public void VerifyRouteObjSaves() { DateTime dt = new DateTime(2009, 3, 20); var repository = new NHibernateRepository<RouteObjNH> (UnitOfWorkFactoryInstance, vRADatabase.Default); using (var transaction = UnitOfWorkFactoryInstance.GetSession(vRADatabase.Default)) { ISessionBuilder sessionBuilder = new SessionBuilder (); ISession session = sessionBuilder.GetSession (vRADatabase.Default); new PersistenceSpecification<RouteObjNH>(session) .CheckProperty(x => x.ProjectID, "12345") .CheckProperty(x => x.RouteID, "R00001") .CheckProperty(x => x.StartTime, dt) .CheckProperty(x => x.SlackTime, 420) .CheckProperty(x => x.VehicleId, "53LTL") .CheckProperty(x => x.MilesTraveled, 34) .CheckReference(x => x.Project, _project) .VerifyTheMappings(); } thanks! Bill On Mar 22, 2:42 pm, James Gregory <jagregory....@gmail.com> wrote: > Hmm, try setting a Cascade on that relationship. > > > > On Sun, Mar 22, 2009 at 6:38 PM, Bill <agilemeis...@gmail.com> wrote: > > > Hi, > > > I'm new to FNH and NH and have made some progress with getting my > > classes mapped using Fluent. Then I found the > > PersistenceSpecification. My question is that when I am just checking > > against the properties of my class I seem to get the results I expect. > > If my mapping class has a Reference back to the parent, I seem to get > > the error: > > > NHibernate.TransientObjectException: object references an unsaved > > transient instance - save the transient instance before flushing: > > vRA.Domain.Project. > > > If I remove the > > > References(x => x.Project) > > .WithForeignKey("ProjectID").WithColumns("ProjectID"); > > > from my mapping file - all is well. > > > If add the References back into my map file and then add a > > > .CheckReference(x => x.Project, _project) > > > in my PersistenceSpecification I get this error - which I can't quite > > decipher > > > System.IndexOutOfRangeException: Invalid index 6 for this > > SqlParameterCollection with Count=6.. > > > I'm probably just doing something stupid. Any ideas would be > > gratefully welcomed. > > > thanks! > > Bill- Hide quoted text - > > - Show quoted text - --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Fluent NHibernate" group. To post to this group, send email to fluent-nhibernate@googlegroups.com To unsubscribe from this group, send email to fluent-nhibernate+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/fluent-nhibernate?hl=en -~----------~----~----~----~------~----~------~--~---