0
我试图用复合键插入记录(不是我的数据库设计,我不得不使用企业架构,所以更改数据库不是一个选项在这里)。nHibernate GeneratedBy.Assigned不工作
我有以下POCO类
public class RulesEngineHeader
{
public virtual string CompanyCode { get; set; }
public virtual string RuleID { get; set; }
public virtual string RuleGroup { get; set; }
public virtual string RuleDescription { get; set; }
public virtual string Expression { get; set; }
}
,并使用以下代码下面的映射(使用流利)
internal class RulesEngineHeaderMap : ClassMap<RulesEngineHeader>
{
internal RulesEngineHeaderMap()
{
Table("LIOEP023");
Id(x => x.CompanyCode, "CONO23")
.GeneratedBy.Assigned()
.Length(2)
.Not.Nullable();
Id(x => x.RuleID, "RLID23")
.GeneratedBy.Assigned()
.Length(30)
.Not.Nullable();
Map(x => x.RuleGroup, "RGRP23")
.Length(30)
.Not.Nullable();
Map(x => x.RuleDescription, "RLDS23")
.Length(50)
.Not.Nullable();
Map(x => x.Expression, "EXPR23")
.Length(2500)
.Not.Nullable();
}
}
:
using (iSeriesUOW uow = new iSeriesUOW())
{
GenericRepository<RulesEngineHeader> rep = new GenericRepository<RulesEngineHeader>(uow);
RulesEngineHeader header = new RulesEngineHeader();
header.CompanyCode = "LI";
header.RuleID = "TEST";
header.RuleGroup = "AC";
header.RuleDescription = "Description";
header.Expression = "This is my rule expression";
rep.Add(header);
uow.Commit();
}
的rep.Add简单地做a
_uow.Session.Save(entityObject);
and the uow.Commit();做一个 _session.Flush();
if (_tx != null)
_tx.Commit();
当我执行,我得到了下面的查询试图执行:
INSERT INTO LIOEP023
(RGRP23,
RLDS23,
EXPR23,
RLID23)
VALUES ('AC' /* @p0_0 */,
'Description' /* @p1_0 */,
'This is my rule expression' /* @p2_0 */,
'TEST' /* @p3_0 */)
正如你看到的,我的企业编码/ CONO23是无处可寻,这是造成错误。
任何想法,为什么这不是在我的插入使用?