I have a Vessel object that has a one-to-many relationship with a
VesselDetail object. When I add a VesselDetail object to the Vessel
object and try to save the Vessel object, it seems NHibernate does not
add the foreign key when inserting the VesselDetail object.

Where am I going wrong here ? I just cannot figure it out. Guess Im
missing some nhibernate / fluent nhibernate skillz here:

Error message:
BDN.FindVessel.Tests.Integration.NhibernateRepositoryTests.SaveVessel_ShouldAddDetailsToDb_WhenAddedToEntity:
NHibernate.Exceptions.GenericADOException : could not insert:
[BDN.FindVessel.Domain.VesselDetail][SQL: INSERT INTO BoatsDetails
(SaftyGear, OtherMachineryAndGear, Material, Size, Various,
TranslatorId, SpeenAndConsumption, MainMachinery, Created, Class,
Capasities, Culture, Interior, Electronics, DeckGear) VALUES
(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?); select SCOPE_IDENTITY
()]
  ----> System.Data.SqlClient.SqlException : Cannot insert the value
NULL into column 'BoatId', table 'FindVesselTest.dbo.BoatsDetails';
column does not allow nulls. INSERT fails.
The statement has been terminated.



public class Vessel
{
        public virtual int BoatId { get; set; }
        public virtual IList<VesselDetail> Details { get; set; }
        //...
}

public class VesselDetail
{
        public virtual int VesselDetailId { get; set; }
        //some other properties
        //..
}

public class VesselMap: ClassMap<Vessel>
{
    public VesselMap()
    {
        WithTable("Boats");

        Id(x => x.BoatId, "Id");

        //..

        HasMany(x => x.Details)
            .WithKeyColumn("BoatId") //foreign key in the BoatsDetails
table
            .Cascade.All();
    }
}

public class VesselDetailMap:ClassMap<VesselDetail>
{
  public VesselDetailMap()
  {
      WithTable("BoatsDetails");

      Id(x => x.VesselDetailId, "Id");

      //...
  }
}

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to