2
我试图创建一个IDictionary上使用另一个类作为关键的对象。流利的NHibernate字典映射
' Dictionary Mapping on Tool
HasMany(Function(x) x.Roles).KeyColumn("ToolRole_ID").AsEntityMap("RoleType_ID").Inverse.Cascade.AllDeleteOrphan().Table("ToolRoles")
' RoleType Mapping
Public Sub New()
Id(Function(x) x.ID).GeneratedBy.GuidComb().Column("ToolRole_ID")
References(Function(x) x.Tool).Not.Nullable.Column("Tool_ID")
References(Function(x) x.RoleType).Not.Nullable.Column("RoleType_ID")
References(Function(x) x.User).Not.Nullable.Column("User_ID")
Map(Function(x) x.LastModified).Not.Nullable()
Table("ToolRoles")
End Sub
我不再得到任何感谢这个帖子映射错误:How to map this Dictionary with the newest fluentNHibernate version?,但我的收藏没有被填充,即使我知道它有子对象。
有什么建议吗?
谢谢,我想我想这一次,但可以肯定我再次做到了,我得到了以下错误:'{“无法确定类型:ToolDatabaseLib.RoleType,ToolDatabaseLib,版本= 1.0.0.0 ,Culture = neutral,PublicKeyToken = null,对于列:NHibernate.Mapping.Column(RoleType)“}' – Origin 2012-07-29 22:38:09
然后在NHibernate中启用SQL日志记录,并直接运行生成的映射的SQL查看它是否返回您期望的结果。 – Firo 2012-07-30 05:40:29
对此延迟接受感到抱歉。提出这个问题的原因实际上已经消失了,所以我没有代码去处理。我只是做了另一个字典映射,它运行良好。有一点需要注意的是,如果属性的列名与属性名称不匹配,则不应使用lambda函数来指定要公开的属性。我的工作映射是'.AsMap(of String)(“task_name”)''而不是'.AsMap(function(x)x.Name))' – Origin 2012-08-16 20:21:34