【发布时间】:2012-02-21 01:00:18
【问题描述】:
我正在尝试为具有节点和边缘的图形创建数据模型。如果 Edge 不包含任何属性,我可以简单地创建从节点到自身的多对多关联。但是我想在 Edge 上存储一些属性,例如距离。我试图创建另一个实体,但没有找到一种方法来声明 Edge 和 Node 之间的关系。模型优先可以吗?怎么样?
【问题讨论】:
标签: .net entity-framework ef-model-first
我正在尝试为具有节点和边缘的图形创建数据模型。如果 Edge 不包含任何属性,我可以简单地创建从节点到自身的多对多关联。但是我想在 Edge 上存储一些属性,例如距离。我试图创建另一个实体,但没有找到一种方法来声明 Edge 和 Node 之间的关系。模型优先可以吗?怎么样?
【问题讨论】:
标签: .net entity-framework ef-model-first
您必须创建两个从节点到边缘的一对多关联,以使用映射的联结表对自引用多对多关系建模。就图论而言,EF 模型创建有向图,因此从 A 到 B 和从 B 到 A 的边之间存在差异。
您将从您的两个实体及其属性开始:
您将从工具箱中拖动第一个关联。从节点开始并将关联拖动到边缘 - 它将在节点和边缘之间创建一对多的关系。为“传出”边缘配置已创建导航的属性:
您将以相同的方式拖动第二个关联并为“传入”边缘配置其属性:
从这个模型生成数据库后,你会得到这个表结构:
【讨论】: