Nhibernate:以相同的精度和比例映射所有小数

A.R*_*.R. 6 c# nhibernate nhibernate-mapping

我理解在NHibernate中,使用代码映射,我可以指定十进制属性的精度和比例,如下所示:

Property(
    x => x.Dollars,
    m =>
        {
            m.Precision(9);
            m.Scale(6);
        }
 );
Run Code Online (Sandbox Code Playgroud)

这很好,但我想知道是否有一种方法可以轻松地以简单的方式映射所有类中的所有小数属性.似乎有点疯狂,我必须通过我的所有映射并手动更新它们.有谁知道如何实现这一目标?

Rip*_*ppo 5

BeforeMapProperty在 ModelMapper 上使用:-

var mapper = new ModelMapper();

mapper.BeforeMapProperty += (inspector, member, customizer) =>  {
    if (member.LocalMember.GetPropertyOrFieldType() == typeof (decimal))
    {
      customizer.Precision(9);
      customizer.Scale(6);
    }
};
Run Code Online (Sandbox Code Playgroud)

唯一要添加的另一件事是删除所有出现的情况:-

 m => { m.Precision(9); m.Scale(6); }
Run Code Online (Sandbox Code Playgroud)

从您的映射类中,因为这些将覆盖您设置的约定,BeforeMapProperty除非您有其他具有不同比例或精度的小数。