データベース(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 では動作しません。
条件付きコンパイル シンボルを使用せずにこれを行う他の方法はありますか? 両方のデータベースで動作する 1 つのビルドが必要です。