我们有一个应用程序使用 NHibernate/FluentNHibernate 并MsSqlConfiguration.MsSql2008.ConnectionString
指向我们的 SQL 环境。SQL 服务器有多个数据库,我们可以使用如下约定连接到不同的数据库:
public class FactseDatabaseConvention : IClassConvention
{
public void Apply(IClassInstance instance)
{
if (instance.EntityType.Namespace.EndsWith("Model.OtherEntities"))
{
instance.Schema("OtherDatabase.dbo");
}
}
}
这有效,并且生成了正确的查询来访问OtherDatabase
. 当我们想要使用SQLiteConfiguration.Standard.InMemory()
SessionFactory 进行测试时,问题就出现了。SQLite 准备时持久性测试失败:
System.Data.SQLite.SQLiteException : SQL logic error or missing database
unknown database OtherDatabase
这是它生成的命令:
create table OtherDatabse.dbo_my_other_entity_table (
Id UNIQUEIDENTIFIER not null,
... other properties
)
有没有办法改变我SQLiteConfiguration
的,让它创建2个内存数据库,如果是这样,怎么做?还是我应该创建一个单独的会话来测试这些其他实体?