2012-02-06 52 views
0

我在通过在我的实体上级联saveupdate保存关联方面存在问题。我有这个映射覆盖,并想通过级联保存它的一对多关联,但这是行不通的。NHibernate级联SaveUpdate

public class DomainMappingOverride : IAutoMappingOverride<Tcf.Domain.Entities.Domain> 
{ 
    /// <summary> 
    /// Overrides the specified mapping. 
    /// </summary> 
    /// <param name="mapping">The mapping.</param> 
    public void Override(AutoMapping<Tcf.Domain.Entities.Domain> mapping) 
    { 
     mapping.Table("domeinen"); 
     mapping.Map(m => m.Code, "code_1"); 
     mapping.Map(m => m.Description, "omschrijving"); 
     mapping.Map(m => m.Explanation, "toelichting"); 
     mapping.Map(m => m.CreatedBy, "createdby"); 
     mapping.Map(m => m.ModifiedBy, "modifiedby"); 
     mapping.Map(m => m.DateCreated, "createdat"); 
     mapping.Map(m => m.DateModified, "modifiedat"); 
     mapping.HasMany<SubDomain>(m => m.SubDomains).KeyColumn("domein").Cascade.SaveUpdate(); 
    } 
} 

对象本身被保存,但不是关联,我做错了什么?

回答

0

我相信当您尝试在已经有一个打开的事务的会话上启动事务时,会出现此错误消息。我需要更多地了解会话包装以提供更好的答案。

+0

好的,没问题。我将编辑我的帖子并复制包装代码。 – 2012-02-07 06:41:02

+0

哪一个ForEach是它打破?我不得不说,你的方法似乎对我来说过于复杂。你不能用级联完成同样的事情吗? – 2012-02-07 13:10:08

+0

你能向我解释这个级联的工作原理吗?你有一个例子吗? – 2012-02-07 16:39:43

0

问题出在我的AutoPersistenceModel世代。我的外键惯例不匹配。

它映射到DomainId,但SQL Server内部的列名是domein。