我正在使用 NHibernate 映射一个类,但我在 2 个不同的数据库上使用相同的映射。这适用于 Sybase Anywhere,但不适用于 SQLite。
这是我的地图类:
public FooMap()
{
Property(x => x.Date, map =>
{
map.Column(c => c.Default("now(*)"));
map.Generated(PropertyGeneration.Insert);
map.NotNullable(true);
});
}
这是映射器:
public class Provider
{
public void AddMappings(ModelMapper mapper)
{
mapper.AddMappings(Assembly.GetAssembly(typeof(BaseMap)).GetExportedTypes().Where(x => x.Name.EndsWith("Map")));
}
}
SQlite 没有 NOW 功能,因此当 Hibernate 尝试创建此表时会导致错误。
如何根据数据库插入默认值?