Tüm NH varlıklarım, BusinessEntity adlı bir türden türetilir, , en temel değerlere sahip olan ID, Created, CreatedBy, Updated, UpdatedBy.NHibernate exception collection [..User.Groups] flush tarafından işlenmedi()
CreatedBy/UpdatedBy Bir kullanıcı
Ben götüren bir IPreUpdateEventListener ve IPreInsertEventListener yangın denetim değerleri için geçerli DateTime almak için o. Ayrıca burada mevcut kullanıcı çalıştırmak için mantığı var benim windows kullanıcı ilkesine karşı bir kriter sorgu çalıştırarak kapmak. Ben Bu konuda NH kullanıcı grubuna yayınının tüm anlaşılmaktadır kadarıyla benim Kullanıcı sınıfı bu ben kullanıcıyı yüklemek nasıl bu benim Olay Dinleyicilerine düzgün çalışması için hevesle yüklenmesi gerekiyor
public User GetByDomainPrinciple(string domainPrinciple)
{
var domainPrincipleCriteria = DetachedCriteria.For<User>()
.Add(Restrictions.Eq("DomainPrinciple", domainPrinciple))
.SetFetchMode("Roles", FetchMode.Eager)
.SetFetchMode("Groups", FetchMode.Eager)
.SetFetchMode("Groups.Roles", FetchMode.Eager)
.SetCacheable(true);
return Repository.QuerySingle(domainPrincipleCriteria);
}
Repository.QuerySingle(domainPrincipleCriteria);
Sadece
return detachedCriteria
.GetExecutableCriteria(_conversation.Session).UniqueResult<T>();
Bir şeyi özlüyor muyum yoksa kriterlerim yanlış mı? Ben mutlak en kötü durum senaryosu Ben bir Kullanıcı yerine bir Guid olmak için CreatedBy değiştirebilir ve sadece FK gibi manuel olarak atayabilir, ama bu çok kirli görünüyor.
Açıklamada yararlı bir şey kaçırmadığım sürece bu işe yaramıyor. Burası olay dinleyicimin kodunu aldığım yer dışında NH'yi etkinlik dinleyicisinden çağırmak yerine sadece onun örneğini olduğu gibi windows ilkesini kullanarak. –
Sanırım orada bir şey yüklüyorsanız size bu hatayı verecektir. Bu soruya, NH kullanıcı gruplarında ve diğer iki kişide de cevapsız bir yanıt almayı denedim. http://groups.google.com/group/nhusers/browse_thread/thread/1db7fd843b0b4b56/cdaa52f93e94e167?hl=en&lnk=gst&q=epitka#cdaa52f93e94e167. Üzgünüm daha fazla yardım etmedim. – epitka
Bu çok yardımcı olmadı, bu yüzden bir çözüm olarak işaretlendiğine şaşırdım. –