我要类和它们之间的一对多关系。
估计版本.cs
private ISet<Template> _templates;
public virtual ISet<Template> Templates
{
get { return _templates ?? (_templates = new HashedSet<Template>()); }
set { _templates = value; }
}
模板.cs
public virtual EstimateVersion EstimateVersion { get; set; }
以下是如何在映射文件中定义它们之间的关系:
估计版本.hbm.xml
<set name="Templates" table="EST_TTemplate" cascade="all-delete-orphan" schema="{TRAN_USER}" inverse="true">
<key column="EstimateVersionId" />
<one-to-many class="Template" />
</set>
模板.hbm.xml
<many-to-one name="EstimateVersion" class="EstimateVersion" column="EstimateVersionId" />
在我创建 的代码中EstimateVersion
,这就是我“让对象知道”它们之间的关系的方式。
var version = new EstimateVersion();
//Code that inserts values into the object's properties
Repository.Save(version);
var template = new Template();
//Code that inserts values into the object's properties
Repository.Save(template);
template.EstimateVersion = version;
插入估计版本的查询运行良好,但在插入模板记录时,它尝试将 null 插入 EstimateVersionId 并抛出错误,因为它不可为空。(我认为如果它可以为空,它会首先将其插入为空,然后用正确的值更新它)。
我该如何纠正?