0
我試圖保存一個新的實體「發佈」與1項添加到其「修訂」列表。流利nhibernate:保存與子實體的新實體時INSERT錯誤
A Post
可以有許多PostRevisions
,而PostRevision
只能有一個Post
。
我試圖映射PostRevisions的幾種方法,我PostRevisionMap如下:
public PostRevisionMap()
{
Id(x => x.PostRevisionId, "PostRevisionId");
Map(x => x.Created, "CreateDateTime").Not.Nullable();
/// SOME OTHER STUFF HERE
References(x => x.Post, "PostId"); // OPTION 1
References(x => x.Post,"PostId").ForeignKey("PostId").PropertyRef(d => d.PostId); // OPTION 2
HasOne<Post>(x => x.Post).ForeignKey("PostId").Cascade.All().PropertyRef(x => x.PostId); // OPTION 3
}
當調用SaveOrUpate我得到一個不同的錯誤
OPTION 1 & 3原因
The INSERT statement conflicted with the FOREIGN KEY constraint "PostId".
選項2原因
NHibernate.HibernateException : Unable to resolve property: PostId
我PostMap如下:
public PostMap()
{
Id(x => x.PostId).Column("PostId");
HasMany(x => x.Revisions)
.Cascade.All()
.Table("PostRevisions")
.KeyColumn("PostId")
.ForeignKeyConstraintName("FK_PostRevision_Post");
/// OTHER STUFF
}
任何人都可以點我在正確的方向,因爲我不能當場的問題。 TIA
感謝您的快速回答,但偏偏沒有喜悅。 仍然得到 'INSERT語句與FOREIGN KEY約束「PostId」衝突。 郵政表上的郵政編碼是自動遞增主鍵。這是錯誤來自我認爲 – Dve 2010-02-09 22:12:31
嗯......試試PostMap:Id(x => x.PostId).GeneratedBy.Identity(); – 2010-02-09 22:21:30
發現了這個問題,在我的測試過程中,我不知何故在兩個表格之間產生了一個新的連接。 感謝您的幫助/ – Dve 2010-02-09 22:41:33