2

我正在尝试为带有节点和边缘的图创建数据模型。如果 Edge 不包含任何属性,我可以简单地创建从节点到自身的多对多关联。但是我想在边缘上存储一些属性,例如距离。我试图创建另一个实体,但没有找到一种方法来声明 Edge 和 Node 之间的关系。模型优先可以吗?如何?

4

1 回答 1

7

您必须创建两个从节点到边缘的一对多关联,以使用映射的联结表对自引用多对多关系建模。就图论而言,EF 模型创建了有向图,因此它在从 A 到 B 和从 B 到 A 的边之间有所不同。

您将从您的两个实体及其属性开始:

在此处输入图像描述

您将从工具箱中拖动第一个关联。从节点开始并将关联拖动到边缘 - 它将在节点和边缘之间创建一对多的关系。为“传出”边缘配置已创建导航的属性:

在此处输入图像描述

您将以相同的方式拖动第二个关联并为“传入”边配置其属性:

在此处输入图像描述

从该模型生成数据库后,您将获得以下表结构:

在此处输入图像描述

于 2012-01-28T10:05:47.423 回答