Я пытаюсь реализовать это решение: NHibernate-20-SQLite-and-In-Memory-DatabasesИспользование SQLite InMemory DB для модульное тестирование MSSQL-DB
Единственная проблема заключается в том, что мы имеем ВСМБ как это:
<class name="aTable" table="[dbo].[aTable]" mutable="true" lazy="false">
с [dbo]
в имени таблицы , потому что мы работаем с mssql, и это не работает с Sqlite.
Я нашел this posting в группе rhino-tools-dev, где они говорят о просто удалении схемы из сопоставления, но на NH2, похоже, нет classMapping.Schema
.
Существует classMapping.Table.Schema
, но, похоже, он доступен только для чтения. Например, это не работает:
foreach (PersistentClass cp in configuration.ClassMappings) {
// Does not work - throws a
//System.IndexOutOfRangeException: Index was outside the bounds of the array.
cp.Table.Schema = "";
}
- Есть ли способ сказать Sqlite игнорировать
[dbo]
(я пробовалattach database :memory: as dbo
, но это, похоже, не помогает)? - В качестве альтернативы, я могу программно удалить его из классов (к сожалению, изменение hbms невозможно сейчас)?
Есть ли способ добавить схему по умолчанию через код или я могу просто сделать это через xml-файл? – 2009-04-30 09:48:21
Перед созданием фабрики сеансов вы можете установить все конфигурации в коде. Configuration.SetProperty ("default_catalog", значение); –