我正在试验 Fluent Nhibernate 的自动映射功能。
namespace Vuscode.Framework.NHibernate.Conventions
{
using FluentNHibernate.Conventions;
using FluentNHibernate.Conventions.Instances;
public class DefaultStringPropertyConvention : IPropertyConvention
{
public void Apply(IPropertyInstance instance)
{
instance.Length(100);
instance.Nullable();
}
}
}
在这里,我看不到任何检查是否instance
为字符串类型的东西。它只是使长度为 100 并且可以为空。Automapper 如何知道仅将此约定应用于字符串?
此外,我想让我的所有布尔值都不可为空,并将默认值设置为 0.. 所以按照上面的例子,我会有这个:
namespace Vuscode.Framework.NHibernate.Conventions
{
using FluentNHibernate.Conventions;
using FluentNHibernate.Conventions.Instances;
public class DefaultBoolPropertyConvention : IPropertyConvention
{
public void Apply(IPropertyInstance instance)
{
instance.Not.Nullable();
instance.Default("0");
}
}
}
但是如果我这样做并且在我的项目中也有默认字符串约定..那么自动映射器如何知道约定适用于哪些属性类型?
我尝试阅读有关约定的流利维基,但没有发现任何有用的东西。