我有一个将数据存储在数据库(oracle)中的应用程序我有简单的模型
public class FileTemplate
{
public string Xml { get; set; }
...
}
和类图
public class FileTemplateMap : ClassMap<FileTemplate>
{
public FileTemplateMap()
{
Table("FILE_TEMPLATE");
Map(f => f.Xml, "XML").CustomSqlType("NCLOB");
...
}
}
一个想添加 PostgreSql 支持。但是 PostgreSql 没有 NCLOB 数据类型。我修改我的映射:
public class FileTemplateMap : ClassMap<FileTemplate>
{
public FileTemplateMap()
{
Table("FILE_TEMPLATE");
#if POSTGRE
Map(f => f.Xml, "XML").CustomSqlType("TEXT");
#else
Map(f => f.Xml, "XML").CustomSqlType("NCLOB");
#endif
}
}
现在我必须通过定义条件编译符号(对于 postgresql)为 oracle 和 postgresql 进行不同的构建。使用 POSTGRE 编译符号构建的应用程序不适用于 oracle。
有没有其他方法可以在不使用条件编译符号的情况下做到这一点?我想要一个构建,它适用于两个数据库。