来自不同表/过程的相同实体

时间:2014-08-07 12:59:05

标签: nhibernate

我有2个程序(比如A和B)。它们都返回具有相似列集的数据(Id,Name,Count)。更具体地说,程序结果示例如下:

A:
Id  Name  Count
1   A     10
2   B     11

B:
Id  Name  Count
1   E     14
2   F     15
3   G     16
4   H     17

ID生成为ROW_NUMBER(),因为我没有这些记录的标识符,因为它们是聚合值。
在代码中,我使用相同的类NameAndCountView查询两个结果 最后我的问题。当我按顺序执行两个程序后查看结果时,我得到以下内容:

A:
Id  Name  Count
1   A     10    ->|
2   B     11    ->|
                  |
B:                |
Id  Name  Count   |
1   A     10    <-|
2   B     11    <-|
3   G     16
4   H     17

如您所见,第二组中的结果将替换为第一组中具有相同ID的结果。当然问题是因为我使用相同的类来检索数据,对吧? 问题是如何在不创建额外的NameAndCountView2类似的课程的情况下完成这项工作?

1 个答案:

答案 0 :(得分:1)

如果可能的话,如果你真的不介意原来的 Id 值,也许你可以尝试让第一个查询返回甚至ID:

ROW_NUMBER() over (order by .... )*2

而第二个返回奇数Ids:

ROW_NUMBER() over (order by .... )*2+1

这也可以让你知道Ids的来源。

我想通过查询号码 i 选择

,这对于N个查询是可重复的
ROW_NUMBER() over (order by .... )*n+i

希望这会有所帮助