У меня возникла эта проблема ..
using (var transaction = Session.BeginTransaction())
{
var t = new Ticket();
t.Title = "TestTicket";
var ticketId = (Guid)Session.Save(t);
var pe = new ProcessExec();
pe.Ticket = t;
Session.Save(pe);
var ticket = Session.Get<Ticket>(ticketId);
transaction.Commit();
Assert.NotNull(ticket);
Assert.True(ticket.ProcessExecCollection.Count > 0);
}
Теперь проблема в том, что assert не удается на
Assert.True (ticket.ProcessExec.Count> 0).
Но если я сделаю
Session.Refresh (тикет);
просто после транзакции. Commit () все работает отлично.Как сообщить NHibernate, что когда я создаю новый ProcessExec и устанавливаю его билет, чтобы автоматически обновлять билет?
Мне это нужно, потому что я делаю много вещей, создающих и выбирающих в транзакции.
Пожалуйстасправка.
<class name="Domain.Model.Sdwwf.ProcessExec" table="[PROCESS_EXEC]" schema="[SDWWF]" dynamic-update="true">
<id name="Id" column="ID" type="Guid">
<generator class="guid" />
</id>
<version name="Version" column="VERSION" />
<many-to-one name="Ticket" column="[TICKET_ID]" cascade="save-update, persist" />
<class name="Domain.Model.Sdwwf.Ticket" table="[TICKET]" schema="[SDWWF]" dynamic-update="true">
<id name="Id" column="ID" type="Guid">
<generator class="guid" />
</id>
<version name="Version" column="VERSION" />
<bag name="ProcessExec" inverse="true" cascade="all">
<key column="[TICKET_ID]" />
<one-to-many class="Softworks.SDW.Domain.Model.Sdwwf.ProcessExec" />
</bag>
<property name="Title" column="[TITLE]" />
</class>