【问题标题】:Entity Framework not picking up relationships after primary key changed in SQL Server在 SQL Server 中更改主键后,实体框架未拾取关系
【发布时间】:2014-10-17 20:37:16
【问题描述】:

在 Visual Studio 2013 update3 中,我在 SQL Server 2012 的 PERSON 表中将主键从 SAM_ID 更改为 ID 后,基于 Entity Framework 5.0 的数据模型没有拾取 pk-fk 关系。

所有约束都重新创建,没有任何问题。 SQL Server 中的图表显示了正确的关系。

我已尝试在 Visual Studio 中清理解决方案并重新创建 ADO.NET 实体数据模型,但持有主键的表和持有外键的表之间仍然没有关系。

主键表 PERSON

CREATE TABLE [dbo].[PERSON](
    [ID] [int] IDENTITY(100001,1) NOT NULL,
    [SAM_ID] [varchar](128) NOT NULL,
    [NAME] [varchar](256) NOT NULL,
    [MANAGER_SAMID] [varchar](128) NULL,
    [IMAGE_ID] [int] NULL,
    [MANAGER_ID] [int] NULL,
 CONSTRAINT [PK_PERSON_1] PRIMARY KEY CLUSTERED 
(
    [ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

外键表INFO

CREATE TABLE [dbo].[INFO](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [PID] [int] NOT NULL,
    [PERSON_ID] [varchar](128) NOT NULL,
    [TITLE] [varchar](512) NOT NULL,
    [DESCRIPTION] [varchar](max) NULL,
 CONSTRAINT [PK_INFO] PRIMARY KEY CLUSTERED 
(
    [ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

ALTER TABLE [dbo].[INFO]  WITH CHECK ADD  CONSTRAINT [FK_INFO_PERSON] FOREIGN KEY([PID])
REFERENCES [dbo].[PERSON] ([ID])
GO

ALTER TABLE [dbo].[INFO] CHECK CONSTRAINT [FK_INFO_PERSON]
GO

我可以尝试什么?

【问题讨论】:

    标签: sql-server entity-framework tsql visual-studio-2013


    【解决方案1】:

    这篇 SO 帖子提供了一个提示,并且成功了:https://stackoverflow.com/questions/20576610/entity-framework-db-first-not-picking-up-relation

    在更改 PK 之前,我已对可能的 PK 添加了唯一约束。显然,在将其设置为 PK 之后,需要删除唯一约束。

    【讨论】:

      【解决方案2】:

      我在 VS2013 更新 4 中遇到了类似的问题:模型图没有显示我的表关系。我最初对最终更改为 PK 的列有唯一索引约束。从 PK 中删除唯一索引约束允许模型图拾取表关系。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-23
        • 1970-01-01
        • 2022-01-09
        • 2015-01-11
        相关资源
        最近更新 更多