我最近升级了FluentNHibernate from v1.1.0.685 to v1.2.0.712(最新)对于NHibernate 2.1.
我的问题似乎是使用的类Component().ColumnPrefix()
映射。
例如,
public class Address{
public string Street {get; set;}
public string Zip {get; set;}
}
public class AddressMap : ComponentMap<Address>{
Map( x => x.Street );
Map( x => x.Zip );
}
public class PersonMap : ClassMap<Person>
{
public PersonMap(){
Id( x => x.Id );
Map( x=> x.Name );
Component( x => x.Address )
.ColumnPrefix("ADDRESS_");
}
}
人员表
Id Name ADDRESS_Street ADDRESS_Zip
----------------------------------------------------
1 Brian 123 Example St. 12345
FNH v1.1.0.685 中的行为
The “地址_”前缀是正确地应用于地址组件的属性。
FNH v1.2.0.712(最新)中的行为
The “地址_”前缀是不再应用于地址组件的属性。NHibernate生成“Street" and "Zip" 上表中未命名的列。
如果有人有任何见解,我将不胜感激。我开始想这个might是一个错误。
Thanks,
Brian
@Brian,
几周前我遇到了确切的障碍。我正在使用自动映射并通过创建组件属性约定来解决它:
Public Class ComponentPropertyConvention
Implements IPropertyConvention, IPropertyConventionAcceptance
Public Sub Accept(ByVal criteria As IAcceptanceCriteria(Of IPropertyInspector)) Implements IConventionAcceptance(Of IPropertyInspector).Accept
criteria.Expect(Function(inspector) inspector.EntityType.Namespace.EndsWith("Components"))
End Sub
Public Sub Apply(ByVal instance As IPropertyInstance) Implements IConvention(Of IPropertyInspector, IPropertyInstance).Apply
instance.Column(String.Format("{0}_{1}", New String() {instance.EntityType.Name.ToLower(), instance.Property.Name.Dbize()}))
End Sub
End Class
可能有很多方法可以实现您的接受标准,因此如果不适合,请不要遵循我的方法......
Cheers
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)