Articles of nhibernate

Como você pode fazer paginação com o NHibernate?

Por exemplo, desejo preencher um controle de gridview em uma página da Web do ASP.NET com apenas os dados necessários para o número de linhas exibidas. Como o NHibernate pode suportar isso?

Maneira mínima e correta de mapear um-para-muitos com o NHibernate

Eu sou novo no NHibernate e C #, então, por favor, seja gentil! Eu tenho as seguintes duas entidades do NHibernate: Employee { private long _id; private String _name; private String _empNumber; private IList _addresses; //Properties… } e Address { private long _id; private String _addrLine1; private String _addrLine2; private String _city; private String _country; […]

Criteria.DISTINCT_ROOT_ENTITY vs Projecções.distinct

Eu sou muito novo no Hibernate. Descobri que podemos obter resultados distintos usando duas maneiras diferentes. Alguém poderia me dizer qual é a diferença entre eles? Quando usar um sobre outro? Projections.distinct(Projections.property(“id”)); vs criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

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 […]