Mamy aplikację, która używa NHibernate/FluentNHibernate z MsSqlConfiguration.MsSql2008.ConnectionString
wskazał na nasze środowisko SQL. Serwery SQL posiada kilka baz danych i możemy połączyć się z różnych baz danych za pomocą konwencję tak:Podczas testowania NHibernate z konfiguracją SQLite In Memory, w jaki sposób tworzysz inną bazę danych?
public class FactseDatabaseConvention : IClassConvention
{
public void Apply(IClassInstance instance)
{
if (instance.EntityType.Namespace.EndsWith("Model.OtherEntities"))
{
instance.Schema("OtherDatabase.dbo");
}
}
}
To działa i poprawne zapytania są generowane na dostęp do OtherDatabase
. Problem pojawia się, gdy chcemy przetestować przy użyciu naszego SessionFactory, używając SQLiteConfiguration.Standard.InMemory()
. Testy Trwałość niepowodzenie podczas SQLite przygotowuje:
System.Data.SQLite.SQLiteException : SQL logic error or missing database
unknown database OtherDatabase
To polecenie generuje:
create table OtherDatabse.dbo_my_other_entity_table (
Id UNIQUEIDENTIFIER not null,
... other properties
)
Czy istnieje sposób mogę zmienić SQLiteConfiguration
aby stworzyć 2 w pamięci baz danych i, Jeśli tak to jak? Czy powinienem po prostu utworzyć oddzielną sesję do testowania tych innych podmiotów?
Dzięki @ jenson-button-event, to może działać. Zanim spróbuję, czy masz jakieś informacje, które możesz udostępnić w lokalnym rozwiązaniu SQL? Wolę to wypróbować. – shanabus
Jest to edycja pamięci MSSQL Express 2012 przeznaczona dla programistów. Oto [wpis na blogu MSDN] (http://blogs.msdn.com/b/sqlexpress/archive/2011/07/12/introducing-localdb-a-better-sql-express.aspx) na ten temat oraz link pobrać [pobierz MSSQL Express 2012] (http://msdn.microsoft.com/en-us/evalcenter/hh230763.aspx). Możesz go również uzyskać przez subskrypcję MSDN, jeśli ją posiadasz. Po prostu wyszukaj LocalDB w pobraniach subskrybentów MSDN. –