【发布时间】:2022-01-09 21:15:12
【问题描述】:
我有 2 个表,如下所示:
表A:
[ID] [bigint] IDENTITY(1,1) NOT NULL,
[AName] [uniqueidentifier] NOT NULL
表B:
[ID] [bigint] IDENTITY(1,1) NOT NULL,
[ANameID] [uniqueidentifier] UNIQUE NOT NULL
我想在B 和A 之间创建一对多关系,其中B 表中的ANameID 可以使用AName 引用A 表中的一个或多个行A 表中的列。 A.AName 列不是主键。
表 A 中可以有多行具有相同的 AName 值,但表 B 中只有一行具有 ANameID 值。
如何在 SQL 或 EF 中实现这一点?
【问题讨论】:
-
你只需要在
INTERSECTION中添加一个外键到ROADS即可。 -
我想你可能需要一个多对多的关系。如果您实际上是在为道路和交叉路口设计数据库,那么一条道路可以有很多交叉路口,而一个交叉路口也可以有很多道路。
-
请忽略表名。道路和十字路口的名称可能不是很好的选择。
-
TABLE A 中可以有许多行具有相同的 AName 值这使得你的目标就“关系”而言完全是无稽之谈。给定 name 的特定值,表 B 中的给定行将连接(或引用或任何合适的术语)表 A 中的多行。将表 A 中的列 AName 与表 A 中的列 ANameID 关联无济于事。表 B。我认为您可能会因为一个不明确的目标而让自己和您的读者感到困惑。
-
这叫做“一对多”
标签: sql sql-server entity-framework