[英]Fluent NHibernate mapping to Oracle 11G and SQLite
在数据库中已经存在的表上,我们尝试为CreationDate添加一列
mapping.Map(x => x.CreationDate)
.Not.Nullable()
.Default("to_date('01-01-0001','dd-MM-yyyy')")
这在oracle上运行良好,但SQLite无法理解,这是很正常的,因为它不知道to_date()函数。
如果我用
DateTime.MinValue.ToString()
带有或不带有特定格式的默认值。 然后它将在SQLite中工作,但在Oracle中将不工作。
有人知道解决方案吗?
省略默认值并编写约定
class CreationDateConvention : IPropertyConvention
{
public CreationDateConvention(string default)
{
_default = default;
}
public void Apply(... instance)
{
if (instance.Name == "CreationDate")
instance.Default(_default)
}
}
// and while configuring
...FluentMappings.AddFromAssemblyOf<>().Conventions.Add(new CreationDateConvention(isOracle ? "to_date..." : Datetime.Minvalue.ToString())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.