У меня есть этот репозиторий:
public class RepositorySQLite : IRepository
{
public void Add<T>(T entity)
{
using (ISession session = SessionProviderSqLite.OpenSession())
using (ITransaction transaction = session.BeginTransaction())
{
session.Save(entity);
transaction.Commit();
}
}
...
}
Я использую это так:
public class Entity1: IEntity
{
public virtual long SomeProperty { get; set; }
}
public class Entity2: IEntity
{
public virtual long AnotherProperty { get; set; }
}
IEntity entity = new Entity1();
entity.SomeProperty = 123;
IRepository repository = new RepositorySQLite();
repository.Add(entity);
Отображение сущности:
У каждой сущности есть собственная таблица, которая называется Entity1, Entity2, ...
Все в порядке, но иногда Entity1 хранится в таблице Entity2.
Мой код работает более чем в одном потоке. Я использую заявление Lock. Nhibernate настраивается с помощью XML. Я использую тест NUnit для всех методов хранилища.
Это произошло в моем приложении впервые после одного года нормальной работы.
Возможные решения:
я должен использовать session.Save (строка entityName, object entity)? Но как? Как я могу получить entityName?