Passing SQL to NHibernate Criteria APi

I have this SQL here, which should be passed to the NHibernate Criteria API:

select nn.* from NetworkNumber nn 
inner join
(select number, max(Version) ver
from NetworkNumber 
group by number) b on b.number=nn.number
and b.ver=nn.version

If anyone has a good knowledge of this, I will greatly appreciate it. At the same time - I will continue to try and publish the results (if any) ..

Edit: so far I have this:

var results = StagingSessionFactory.OpenSession()
            .CreateCriteria<NetworkNumber>()
            .SetProjection(
                Projections.ProjectionList()
                    .Add(Projections.Property("Number"), "Number")
                    .Add(Projections.Max("Version"), "Version")
                    .Add(Projections.GroupProperty("Number"), "Number")
                )
            .SetResultTransformer(Transformers.AliasToBean(typeof(NetworkNumber)))        
            .List<NetworkNumber>();

Which gives me the correct version / number of NetworkNumber, but I need the rest of the fields (Id, etc.). Maybe something is missing for me?

+3
source share

Source: https://habr.com/ru/post/1766438/


All Articles