2
我使用流利NHibernate(自动映射)将我的域对象映射到数据库表。我创建了自己的'Date'类,我使用'DateTranslator'映射 - NHibernate的'IUserType'的实现。流利的NHibernate - 应用自定义类型的惯例
public class MyDomainObject : DomainObject
{
public Date Date { get; set; }
}
public class MyDomainObjectMappingOverride : IAutoMappingOverride<MyDomainObject>
{
public void Override(AutoMapping<MyDomainObject> mapping)
{
mapping.Map(x => x.Date).CustomType(typeof(DateTranslator));
}
}
正如你所看到的 - 我已经创建了一个映射覆盖的领域对象,这样我可以指定要用于映射“日期”属性的自定义类型。
现在 - 这意味着我必须为包含'Date'类型的属性的所有域对象创建映射覆盖。
我想在这里使用一个约定,以便'DateTranslator'将用于映射'Date'类型的所有属性,但我一直无法弄清楚。
任何帮助,这将不胜感激。
将无法工作。 –
然后你忘了从automapping中排除自定义类型。覆盖布尔ShouldMap(t){返回t!= typeof(日期)&& base.ShouldMap(t); }' – Firo
我也有这个问题。看起来,ShouldMap(类型类型)永远不会被调用我的属性,它具有自定义基元类型,但它也不会触及我的IPropertyConvention。有什么显而易见的,我可能错过了? – DavGarcia