【发布时间】:2010-12-19 11:03:40
【问题描述】:
嗯,这不是一个普通的重复问题。因为行中某些字段(UserId 和 Name)的重复,我只需要为每个 UserId 创建一个对象 并且仍然收集该行中其他相关的唯一信息。
这不是我第一次问同样的问题,请参考My First Question About This Issue
这是我使用的数据库结构
用户表
UsedId UserName
-------- ----------
1 Mike
2 Raul
3 Nick
HasPrivileges 表
UsedId PrivilegeId
-------- --------------
1 1
1 2
1 3
2 2
2 3
权限表
PrivilegeId Privilege
------------- ------------
1 Create
2 Edit
3 Delete
HasMedals 表
UsedId MedalsId
-------- --------------
1 1
1 2
2 2
3 1
奖牌桌
MedalsId Medal
------------- ------------
1 C#
2 VB.NET
现在我有一个查询我的数据库的 DAL
和一个 BLL,它有两个属性 int 用于 id 和 string 用于 name 和两个列表属性 List 和 List 以及另外两个用于权限和奖牌类型的类
还有我的 asp.net 页面(作为我的表示层),它使用 ObjectDataSource 作为绑定的数据源。
我在我的 DAL 中使用一种方法来加入所有以前的表并选择 UserId、UserName、Privilege、Medal 并返回所有用户的列表。
问题是 sql 需要多次重复用户 id 和 name,每次都带有权限的值,然后再重复 id 和用户加上每个奖牌的权限价值。我只需要一个对象来容纳一个用户。
如果我刚刚选择了 UserId = 1 的查询示例结果
1 Mike Create C#
1 Mike Edit C#
1 Mike Delete C#
1 Mike Create VB.NET
1 Mike Edit VB.NET
1 Mike Delete VB.NET
关于如何以最佳方式处理这种情况的任何想法(架构和性能方面) 以及在哪里处理它-我的意思是在哪一层-。
P.S : 如果我有除 DataSet 之外的其他选项,那么我宁愿避免使用它们!
谢谢你们的时间=)
【问题讨论】:
标签: c# asp.net ado.net webforms