NHibernate Mapping - 总记录。 (流利的Nhibernate)

时间:2016-01-07 11:24:38

标签: nhibernate fluent-nhibernate

我有类class1,它有一些属性和Mapper类Class1Map,它映射到DB中的table1。

我需要使用NHibernate从table1获取前10条记录以及表中的记录总数。

我在class1'总记录'中添加了新属性。我怎样才能在class1Map中映射它。

1 个答案:

答案 0 :(得分:1)

这将是性能问题。您将为每一行执行子查询。

我不推荐这个。如果需要,可以在映射中添加公式

Id(x => x.Id).Column("id").GeneratedBy.Identity();
Map(x => x.PropA).Column("propA").Nullable();
Map(x => x.TotalRecords).Formula("(select Count(1) from tableA)");

我推荐。 1-在执行查询之前获取表的totalRecords 2-执行查询。 3-设置你的财产:

var recordsCount  = Session.Query<TableA>().Count();
var objects = Session.Query<TableA>().Where(yourExpression).Take(10);
objects.Foreach(f=> f.TotalRecords = recordsCount);

return objects;