C# Fluent NHibernate保存连接记录

C# Fluent NHibernate保存连接记录,c#,database,nhibernate,fluent,C#,Database,Nhibernate,Fluent,我在SQL中有3个表。。。如下所示 现在,它映射到以下域对象 public abstract class Case { public virtual DateTime Imported { get; set; } public virtual int Id { get; set; } } public class Meeting { public virtual int Id { get; set; }

我在SQL中有3个表。。。如下所示

现在,它映射到以下域对象

    public abstract class Case
    {
        public virtual DateTime Imported { get; set; }
        public virtual int Id { get; set; }

    }

    public class Meeting
    {
        public virtual int Id { get; set; }
        public virtual string Employee { get; set; }
        public virtual string LineManager { get; set; }
        public virtual Case Case { get; set; }

    }
    public class SCase : Case
    {
        public virtual int Id { get; set; }
        public virtual string reason { get; set; }
        public virtual IList<Meeting> Meeting { get; set; } 

    }

This works fine when I query it using the following fluent configuration

   public class PMap : ClassMap<Case>
    {
        public PMap()
        {

            Id(x => x.Id).GeneratedBy.Assigned();

        }
    }

    public class ParentMap : ClassMap<SCase>
    {
        public ParentMap()
        {

            Id(x => x.Id);
            Map(x => x.reason);
            //Map(x => x.Imported);
            Join("[Case]", m =>
                {
                    m.Fetch.Join();
                    m.KeyColumn("Id");
            });


        }
    }
公共抽象类案例
{
导入的公共虚拟日期时间{get;set;}
公共虚拟整数Id{get;set;}
}
公开课
{
公共虚拟整数Id{get;set;}
公共虚拟字符串Employee{get;set;}
公共虚拟字符串LineManager{get;set;}
公共虚拟案例案例{get;set;}
}
公开课:个案
{
公共虚拟整数Id{get;set;}
公共虚拟字符串原因{get;set;}
公共虚拟IList会议{get;set;}
}
当我使用以下fluent配置查询它时,它工作得很好
公共类PMap:ClassMap
{
公共PMap()
{
Id(x=>x.Id).GeneratedBy.Assigned();
}
}
公共类ParentMap:ClassMap
{
公共ParentMap()
{
Id(x=>x.Id);
Map(x=>x.reason);
//Map(x=>x.Imported);
Join(“[Case]”,m=>
{
m、 Fetch.Join();
m、 键列(“Id”);
});
}
}
但我不明白为什么它不能保存!当然,如果它能够阅读并知道如何绘制地图,那么它必须能够保存它

我得到以下错误:

{“无法将值NULL插入到表的'CaseId'列中 'Scratchpad.dbo.SCase;列不允许空值。插入 失败。\r\n语句已终止。“}

为什么它试图插入
CaseID
?当然,因为它是一个连接,所以它应该插入
SCase
中的Id