我有类class1,它有一些属性和Mapper类Class1Map,它映射到DB中的table1。
我需要使用NHibernate从table1获取前10条记录以及表中的记录总数。
我在class1'总记录'中添加了新属性。我怎样才能在class1Map中映射它。
答案 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;