Я работаю над проектом с использованием Nhibernate 3.0 и Fluent Nhibernate.Мы используем SQL-Server 2008 для производственных целей.Для создания версий мы полагаемся на сгенерированные временные метки на стороне SQL-сервера.
Недавно я начал писать тесты репозитория, используя в памяти базу данных SQLite.К сожалению, SQLite не может генерировать временные метки, поэтому любая вставка завершается неудачно с нарушением ограничения.
Я хочу изменить отображение версий на управляемое Nhibernate, когда я компилирую свои отображения для базовой базы данных SQLite.Код, передающий эту идею, будет выглядеть примерно так:
public class CommonClassMap<T> : ClassMap<T> where T:Entity
{
public CommonClassMap()
{
if (SQLITE)
{
Version(n => n.Version);
}
else
{
Version(n => n.Version).CustomSqlType("timestamp").UnsavedValue("null").CustomType("BinaryBlob").
Generated.Always();
}
К сожалению, мне не удалось найти какой-либо способ изменить сопоставления во время выполнения или прочитать информацию о базе данных из ClassMap.Любая помощь приветствуется.