Articles of nhibernate

Qual é a diferença entre session.Merge e session.SaveOrUpdate?

Percebo que às vezes com meus objects pai / filho ou relacionamentos muitos-para-muitos, preciso chamar SaveOrUpdate ou Merge . Normalmente, quando eu preciso chamar SaveOrUpdate , a exceção que eu recebo chamando Merge tem a ver com objects transitórios não sendo salvos primeiro. Por favor, explique a diferença entre os dois.

NHibernate QueryOver com Fetch resultando várias consultas SQL e ocorrências de db

Estou tentando selecionar uma entidade e buscar uma lista relacionada: Session.QueryOver() .Fetch(x => x.UsersInRole).Eager .List(); Que resulta em muitos hits do database. O primeiro é algo como: SELECT … FROM UserRoles left outer join UsersInRoles on … E centenas de consultas separadas que se parecem com: SELECT … FROM UsersInRoles left outer join UserRoles on […]

Entidade Framework 4 vs NHibernate

Muito se falou sobre a primeira versão do Entity Framework na web (também no stackoverflow) e é claro que não foi uma boa escolha quando já temos uma alternativa melhor como o NHibernate. Mas não consigo encontrar uma boa comparação entre o Entity Framework 4 e o NHibernate. Podemos dizer que hoje o NHibernate é […]

Referenciando 2 versões diferentes do log4net na mesma solução

Estou usando o NHibernate 2.1.2.400 que está fazendo referência ao log4net 1.2.10.0. No mesmo projeto, eu também uso o simples SDK de contabilidade, infelizmente ainda está usando o log4net 1.2.9.0. Então eu posso fazer o NHibernate funcionar se eu referenciar o log4net 1.2.10.0 mas o simplesmenteSDK não funciona. E vice versa… Eu estou supondo que […]

Associações de transformadores NHibernate AliasToBean

Eu estou tentando usar a seguinte instrução para obter uma entidade com os campos que eu sou depois: retVal = session.CreateCriteria(typeof(MyEntity)) .CreateAlias(“MyEntityProperty”, “MyEntityProperty”) .Add(Restrictions.Eq(“MyEntityProperty.Year”, year)) .SetProjection( Projections.Distinct( Projections.ProjectionList() .Add(Projections.Property(“Property1”), “Property1”) .Add(Projections.Property(“Property2”), “Property2”) .Add(Projections.Property(“MyEntityProperty.RegisteredUser”), “MyEntityProperty.RegisteredUser”) .Add(Projections.Property(“MyEntityProperty.CompanyInfo”), “MyEntityProperty.CompanyInfo”) ) ) .SetResultTransformer(Transformers.AliasToBean(typeof(MyEntity))) .List() .Cast(); MyEntity é a entidade que desejo retornar e MyEntityProperty é uma propriedade de MyEntity […]

NHibernate ISession Flush: Onde e quando usá-lo e por quê?

Uma das coisas que me deixam completamente confuso é o uso de session.Flush , em conjunto com session.Commit e session.Close . Às vezes o session.Close funciona, por exemplo, ele comete todas as mudanças que eu preciso. Eu sei que preciso usar commit quando tenho uma transação, ou uma unidade de trabalho com várias criações / […]

Consulta na referência HasMany

Eu tenho um modelo de entidade assim: public class Request { public virtual IList Responses { get; set; } } public class Response { public virtual DateTime Timestamp { get; set; } public virtual bool Success { get; set; } } Eu estou tentando criar uma consulta que me dará todas as solicitações onde sua […]

Qual é o algoritmo Hi / Lo?

Qual é o algoritmo Hi / Lo? Eu encontrei isso na documentação do NHibernate (é um método para gerar chaves exclusivas, seção 5.1.4.2), mas não encontrei uma boa explicação de como isso funciona. Eu sei que o Nhibernate lida com isso, e eu não preciso conhecer o interior, mas estou apenas curioso.

Como Ansioso Carregar Associações sem Duplicação no NHibernate?

Eu precisaria carregar uma lista de objects muito grandes com tantas crianças e filhos de crianças. Qual a melhor abordagem a seguir? Estou usando o database Oracle 11g e escrevi o método abaixo, mas isso resulta em um produto cartesiano (resultados duplicados): public IList GetByEventId(long eventId) { var session = this._sessionFactory.Session; var nominationQuery = session.Query().Where(n […]