C# Fluent NHibernate保存连接记录
我在SQL中有3个表。。。如下所示 现在,它映射到以下域对象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; }
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