Я использую MVC2, NHibernate 3.2.
Мои занятия:
public class NHibernateHelper
{
private static ISessionFactory _sessionFactory;
private static ISessionFactory SessionFactory
{
get
{
if (_sessionFactory == null)
{
var configuration = new Configuration();
configuration.Configure();
configuration.AddAssembly(typeof(EstoqueEquipamento).Assembly);
_sessionFactory = configuration.BuildSessionFactory();
}
return _sessionFactory;
}
}
public static ISession OpenSession()
{
return SessionFactory.OpenSession();
}
}
Я запрашиваю элемент следующим образом:
public Car GetCar(object pk)
{
using (ISession session = NHibernateHelper.OpenSession())
{
return session.Get<Car>(pk);
}
}
Карта автомобиля:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernateClasses" namespace="NHibernateClasses.Entities">
<class name="Car" table="STACK.CAR" lazy="true" dynamic-update="true" dynamic-insert="true" >
<id name="CarId" column="CAR_ID" type="Int32" unsaved-value="0">
<generator class="sequence">
<param name="sequence">SQ_CAR</param>
</generator>
</id>
<bag name="TireList" inverse="true" generic="true" lazy="true" >
<key>
<column name="CarId"/>
</key>
<one-to-many class="Tire" />
</bag>
<property name="Plate" type="String" column="MAH_PLATE" />
</class>
</hibernate-mapping>
Отображение шин:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernateClasses" namespace="NHibernateClasses.Entities">
<class name="Tire" table="STACK.Tire" lazy="true" dynamic-update="true" dynamic-insert="true" >
<id name="TireId" column="Tire_ID" type="Int32" unsaved-value="0">
<generator class="sequence">
<param name="sequence">SQ_Tire</param>
</generator>
</id>
<property name="Brand" type="String" column="MAH_BRAND" />
</class>
</hibernate-mapping>
Затем я запрашиваю элемент:
var car = GetCar(1);//works just fine
var tirelist = car.Tires;//throws error!
Первая строка работает без проблем, но последняя строка выдает следующую ошибку:
Инициализация [Автомобиль] -failed
лениво инициализировать коллекцию ролей:
Car.TireList,
ни один сеанс или сеанс не был закрыт
Дайте мне знать, если вам также нужен файл конфигурации.
Спасибо