【发布时间】:2013-05-27 11:14:42
【问题描述】:
我正在开发一个带有 VB 的 ASP.NET,使用 NHIBERNATE 来映射预先存在的数据库 (SQL Server 2005) 的表。我与实体之间存在多对多关系,我像这样映射:
<list name="PropName" table="TableHoldingRelation" lazy="false" >
<key column="idEntity1"></key>
<index column ="orderingColumn" ></index>
<many-to-many class="Entity2" column="idEntity2"></many-to-many>
</list>
映射工作完美,(Entity2)列表按所选列排序。
问题是此列不连续,因为可能缺少某些值(即:0、1、3、8)。 NHibernate 将这些空间保留为 null/nothing 元素。我希望列表“压缩”,仅包含现有元素,按该列排序。
我可以在不更新数据库的情况下实现这一点吗? (更新不是一个好的解决方案,因为将来可能会删除某些元素)
提前感谢您的帮助。
编辑:问题中的更多信息。 这种情况下的表/实体指的是菜单和菜单项。我正在使用的应用程序是一个非常复杂的网站,有很多不同的角色。每个角色都有其独特的菜单配置和独特的项目。甚至有具有独特设置的单个用户。我的任务是重写 .NET 类和映射,因为它们真的很混乱,而且其他的东西与这个问题无关。所以我正在映射的数据库设计是(对于这个问题,显然还有其他表): 一张包含菜单及其属性的表(例如它们对应的角色) 一张包含菜单项及其属性的表(如它们指向的链接) 一张表,其中包含 de 关系 menu-menuitem 和该菜单内的“位置”/订单列。
以防万一需要对问题有更深入的了解。
【问题讨论】:
标签: sql-server-2005 nhibernate nhibernate-mapping