我有这样的查询
SELECT
RC.CONSTRAINT_NAME FKName,
KF.TABLE_SCHEMA FKSchema,
KF.TABLE_NAME FKTable,
KF.COLUMN_NAME FKColumn,
RC.UNIQUE_CONSTRAINT_NAME PKName,
KP.TABLE_SCHEMA PKSchema,
KP.TABLE_NAME PKTable,
KP.COLUMN_NAME PKColumn,
RC.MATCH_OPTION MatchOption,
RC.UPDATE_RULE UpdateRule,
RC.DELETE_RULE DeleteRule
FROM
[INFORMATION_SCHEMA].[REFERENTIAL_CONSTRAINTS] RC
JOIN
[INFORMATION_SCHEMA].[KEY_COLUMN_USAGE] KF ON RC.CONSTRAINT_NAME = KF.CONSTRAINT_NAME
JOIN
[INFORMATION_SCHEMA].[KEY_COLUMN_USAGE] KP ON RC.UNIQUE_CONSTRAINT_NAME = KP.CONSTRAINT_NAME
它的结果如下:
FK_Person_Address dbo Person Id PK_Address dbo Address Id SIMPLE NO ACTION NO ACTION --[1-1] or [1-M] or [M-N] I need this!
我想知道每行1-1或1-M中关系的类型是关系状态的列。
[1-1]或[1-M]或[M-N]我需要这个!
任何人都可以指导我吗?
编辑:
为什么我问这个问题?所以我看到像Reverse poco Generator和Entity Framework Power Tools Beta 4这样的视觉工作室扩展可以将表反转为C#pocos,因此他们必须知道关系状态1-1或1-M或MN,以便将Navigation属性生成为单个类或列表类,并创建EntityTypeConfiguration用于映射,以便他们如何从SQL服务器表获取这些信息?如果我们不了解表的关系,那么我们就不能将它们反转为C#class!
答案 0 :(得分:-1)
对于1-1关系:在引用表中有外键约束的唯一关键字。
对于M-1关系:在引用表中没有带有外键约束的唯一关键字。