我有一個Vessel對象,它與一個對象爲一個對象的一對多關係。當我將VesselDetail對象添加到Vessel對象並嘗試保存Vessel對象時,似乎NHibernate在插入VesselDetail對象時不會添加外鍵。NHibernate一對多問題
我在哪裏錯了?我無法弄清楚。
錯誤消息: BDN.FindVessel.Tests.Integration.NhibernateRepositoryTests.SaveVessel_ShouldAddDetailsToDb_WhenAddedToEntity: NHibernate.Exceptions.GenericADOException:無法插入:[BDN.FindVessel.Domain.VesselDetail] [SQL:INSERT INTO BoatsDetails(SaftyGear,OtherMachineryAndGear ,材料,大小,各種,TranslatorId,SpeenAndConsumption,MainMachinery,創建,類,Capasities,文化,室內設計,電子,DeckGear)VALUES(?,?,?,?,?,? ,?,?,?,?);選擇SCOPE_IDENTITY()] ----> System.Data.SqlClient.SqlException:無法將值NULL插入到'BoatId'列中,表'FindVesselTest.dbo.BoatsDetails';列不允許有空值。 INSERT失敗。 該聲明已被終止。
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");
//...
}
}
upvoted張貼你如何解決:)謝謝你的問題! – Almond 2009-02-17 20:53:25