我有一个定义命令的表,一个命令有一个参数列表,一个参数必须有一个命令。这意味着parameterMap中的引用:
Id(x => x.Id).Column("GUID_PARAMETER").GeneratedBy.Assigned();
References(x => x.Command).Column("GUID_COMMAND").Cascade.All();
Table("MST_PARAMETER");
和HasMany in命令填充列表:
Id(x => x.Id).Column("GUID_COMMAND").GeneratedBy.Assigned();
HasMany<ParameterEntity>(x => x.ParameterList)
.Table("MST_PARAMETER")
.KeyColumn("GUID_PARAMETER")
.Inverse()
.Cascade.All();
Table("MST_COMMAND");
然后,当试图测试一个命令有一个参数列表时,我总是得到一个错误,说我不能用null命令插入一个参数。
对于我所看到的,实现这一点的正确方法是在测试命令图时使用这样的调用
new PersistenceSpecification<CommandEntity>(_session)
.CheckProperty(c => c.Id, Guid.NewGuid())
.CheckList(c => c.ParameterList, FixtureUtils.GetDefaultParameterListFromCommand(), (command, parameter) => command.AddParameter(parameter))
可以测试吗?
答案 0 :(得分:0)
您已设置inverse=true
,这意味着参数负责关联。因此,您必须在参数:
.CheckList(c => c.ParameterList, FixtureUtils.GetDefaultParameterListFromCommand(), (command, parameter) => { command.AddParameter(parameter); parameter.Command = command; })
更新
根据参考声明, .KeyColumn("GUID_PARAMETER")
应为.KeyColumn("GUID_COMMAND")