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