Я хочу добавить новый объект в мой общий корень.Это работает нормально, но не вызывает генерацию идентификатора.
Чтобы сделать это более понятным, возьмем следующий пример кода, где все сущности сопоставлены с Id(e => e.Uid).GeneratedBy.GuidComb();
.
public class Aggregate : EntityBase<Guid,Aggregate>
{
// ...
public virtual ISet<SubEntity> SubEntities { get; protected set; }
public virtual SubEntity DoSomethingThatCreatesASubEntity(string name, string format)
{
var newEntity=new SubEntity(name, format);
SubEntities.Add(newEntity);
return newEntity;
}
}
public class SubEntity : EntityBase<Guid,SubEntity>
{
}
// Client Code:
var agr=Session.Get<Aggregate>(id);
var subEntity=agr.DoSomethingThatCreatesASubEntity("xyz","xyz");
Assert.True(subEntity.IsTransient);
Session.Flush();
Assert.False(subEntity.IsTransient);
Что я хочу, так это то, что когда я добавляю к SubEntites, newEntity будет перезагружаться с Uid.Я не хочу получать доступ к NHibernate ISession там (поэтому Session.Save () или Refresh ()) недоступны.
Возможно ли это без изменения моих сущностей?