【发布时间】:2010-12-15 00:14:10
【问题描述】:
我的数据库中有一个存储项目的表:
Items
-------
ItemID
Name
...
Etc
还有一个单独的表,用于存储第一个表中两个不同项目的 PK。我希望能够列出一个项目,然后列出任意数量的相关项目。我已经尝试搜索示例,但没有发现太多令人惊讶的...
RelatedItems
------------
ItemID
RelatedItemID
如果我有四个产品,它们的 ID 分别是 1、2、3 和 4...,并且 1 与 2 和 3 相关,我可能会有如下所示的数据:
ItemID RelatedItemID
1 2
1 3
4 1
然后我在 Entity Framework Designer 中对它们进行建模,并且设计器会自动将 Items 表中的关联添加到自身(多对多)。设计器还添加了两个导航属性,如果我在 Item #1 上使用第一个属性,我会得到 Item #1 在第一列中的所有项目,如果我使用第二个属性,我会得到 Item #1 所在的所有项目第二列。
然而,我只想拥有一个导航属性,我可以在其中说 Items.RelatedItems,它会返回上述两个属性组合时的所有项目。我知道我可以在事后加入这两个结果,但我不禁认为我做错了什么并且有更好的方法。
希望这一切都足够清楚。
【问题讨论】:
标签: sql sql-server entity-framework database-design