如何在 NHibernate 中获取键属性的映射?
我正在尝试使用以下几行在运行时加载 POCO 类的 nhibernate 映射:
var persistentClass = NHibernateHelper.Configuration.GetClassMapping( type );
var property = persistentClass.GetProperty( propertyName );
它工作正常,但它在具有以下映射的类上的属性 GroupId 上失败:
<class name="GroupPartnerInterest" table="[GROUP_PARTNER_INTERESTS]">
<composite-id >
<key-property name="GroupId" column="PAR_ID" />
If type == typeof(GroupPartnerInterest)
persistentClass.GetProperty( "GroupId" )
失败并出现 MappingException:
找不到属性:实体上的 GroupId 集团合作伙伴兴趣”
我可以在调试器中看到来自 composite-id
的 key-properties
没有出现在 persistClass.properties 中。
有没有办法获取此键属性的映射?
先感谢您。
I'm trying to load nhibernate mapping for POCO classes at runtime with following lines:
var persistentClass = NHibernateHelper.Configuration.GetClassMapping( type );
var property = persistentClass.GetProperty( propertyName );
It works fine except it fails on property GroupId on a class with following mapping:
<class name="GroupPartnerInterest" table="[GROUP_PARTNER_INTERESTS]">
<composite-id >
<key-property name="GroupId" column="PAR_ID" />
If type == typeof(GroupPartnerInterest)
persistentClass.GetProperty( "GroupId" )
fails with MappingException:
property not found: GroupId on entity
GroupPartnerInterest"
I can see in debugger that key-properties
from composite-id
do not appear in persistentClass.properties.
Is there a way to get mapping for this key-property?
Thank you in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
普通属性可以通过persistentClass.PropertyClosureIterator 进行迭代(即包括来自基类的属性)。
关键属性位于
( ( Component )( permanentClass.Identifier ) ).PropertyIterator
中。因此,通过这段代码,我可以搜索关键属性和普通属性:
The ordinary properties can be iterated through
persistentClass.PropertyClosureIterator
(that is including properties from base classes).The key properties are in
( ( Component )( persistentClass.Identifier ) ).PropertyIterator
.So with this piece of code I'm able to search both key properties and ordinary properties: