gpt4 book ai didi

c# - Fluent NHibernate - 应用自定义类型的约定

转载 作者:太空宇宙 更新时间:2023-11-03 11:33:14 25 4
gpt4 key购买 nike

我正在使用 Fluent NHibernate(自动映射)将我的域对象映射到数据库表。我创建了自己的“Date”类,我使用“DateTranslator”映射它 - NHibernate 的“IUserType”的实现。

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));
}
}

如您所见 - 我为此域对象创建了一个映射覆盖,以便我可以指定应该用于映射“日期”属性的自定义类型。

现在 - 这意味着我必须为所有包含“日期”类型属性的域对象创建映射覆盖。

我想在这里使用约定,以便“DateTranslator”将用于映射“Date”类型的所有属性,但我一直无法弄明白。

如有任何帮助,我们将不胜感激。

最佳答案

public class MyUsertypeConvention : IPropertyConvention
{
public void Apply(IPropertyInstance instance)
{
if (instance.Type.Name == "Date")
//or
//if (instance.Type.GetUnderlyingSystemType() == typeof(Date))
instance.CustomType<DateTranslator>();
}
}

和配置例如

FluentMappings.Conventions.Add(new MyUsertypeConvention())

关于c# - Fluent NHibernate - 应用自定义类型的约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7131739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com