nhibernate投影到匿名类型

时间:2015-11-20 19:00:33

标签: c# nhibernate group-by anonymous-types queryover

我有一个查询来计算Child个对象的Parent个对象的数量 我需要将结果转换为List<KeyValuePair<int, int>>
无法弄清楚。

Child childAlias = null;
Parent parentAlias = null;
int[] parentIds = new int[]{1,2,3};

var temp = sess.QueryOver<Parent>()
   .JoinQueryOver(p => p.Children, () => childAlias)
   .Where(c => c.Parent.Id.IsIn(parentIds))
   .Select(Projections.ProjectionList()
      .Add(Projections.GroupProperty(Projections.Property<Parent>(x => x.Id)))
      .Add(Projections.Count(() => childAlias.Id)))
  .List<object[]>();

我需要List<object[]>List<KeyValuePair<int, int>> 我知道它涉及带有匿名对象的Select,但无法弄清楚

2 个答案:

答案 0 :(得分:3)

工作查询应如下所示:

tukey:env juanzinser$ virtualenv general
-bash: virtualenv: command not found

答案 1 :(得分:1)

如果列表中的每个项都包含两个类型为int的元素的数组,那么您可以写:

var pairs = temp.Select(array => new KeyValuePair(array[0] as int, array[1] as int));

如果你不确定那里有int,你可以使用比Convert.ToInt32更安全的as