Я пытаюсь использовать NHibernate с SQLite для модульного тестирования.Но я продолжаю получать сообщение об ошибке
Исключение ADOException было обработано кодом пользователя во время подготовки INSERT INTO User (Имя_Имя, Фамилия_Имя, Имя_пользователя, Пароль, Электронная почта, Активн.Modified_By) значения (@ p0, @ p1, @ p2, @ p3, @ p4, @ p5, @ p6, @ p7, @ p8, @ p9, @ p10, @ p11);select last_insert_rowid () произошла ошибка
Внутреннее исключение: {"Невозможно записать в закрытый TextWriter."}} 1006 *
Я не знаю, что я делаю неправильно.Вот мой код
public class InMemoryDatabaseTest : IDisposable
{
private static Configuration Configuration;
private static ISessionFactory SessionFactory;
protected ISession session;
public InMemoryDatabaseTest()
{
if (Configuration == null)
{
Assembly a = Assembly.Load("Astute.Framework.Data");
Configuration = new Configuration()
.SetProperty(Environment.ReleaseConnections, "on_close")
.SetProperty(Environment.Dialect, typeof(SQLiteDialect).AssemblyQualifiedName)
.SetProperty(Environment.ConnectionDriver, typeof(SQLite20Driver).AssemblyQualifiedName)
.SetProperty(Environment.ConnectionString, "data source=:memory:")
.SetProperty(Environment.ProxyFactoryFactoryClass, typeof(ProxyFactoryFactory).AssemblyQualifiedName)
.AddAssembly(a);
SessionFactory = Configuration.BuildSessionFactory();
}
session = SessionFactory.OpenSession();
new SchemaExport(Configuration).Execute(true, true, false, session.Connection, Console.Out);
}
public void Dispose()
{
session.Dispose();
}
}
[TestClass]
public class Test : InMemoryDatabaseTest
{
[TestMethod]
public void CanSaveUser()
{
object id;
using (var tx = session.BeginTransaction())
{
id = session.Save(new User
{
FirstName = "Imran",
LastName = "Ashraf",
UserName = "imran",
Password = "Test",
Email = "Test@test.com",
IsActive = true,
DefaultClinicIdentifcationNumber = "",
LoginIcon = "",
CreatedBy = 1000000,
CreatedDate = DateTime.Today,
ModifiedBy = 1000000,
ModifiedDate = DateTime.Today
});
tx.Commit();
}
session.Clear();
}
}
В этой строке я получаю сообщение об ошибке id = session.Save.Я получил этот пример от http://ayende.com/Blog/archive/2009/04/28/nhibernate-unit-testing.aspx
Есть идеи?Заранее спасибо.