在 SQL Server 2012 中使用 Entity Framework (4.x, 5) 时遇到了一个非常奇怪的问题。
为了说明我制作了两个非常简单的一对多关系的表
PK. [User].[UserId]
FK. [Order].[UserId]
但是 EF 根本没有为这两个表生成任何导航属性。在 EDMX 中,这两个表是完全分开的;它们之间根本没有联系。
然后,我在 SQL Server 2008 中使用相同的脚本创建了相同的表,突然之间,一切都像往常一样按预期工作了。
有没有人有同样的问题?有什么解决方案吗?
我正在使用 MSDN 的 SQL Server 2012 Developer Edition
CREATE TABLE [dbo].[Users](
[UserId] [int] IDENTITY(1,1) NOT NULL,
[UserName] [varchar](50) NOT NULL,
CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED
(
[UserId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
CREATE TABLE [dbo].[Orders](
[OrderId] [int] IDENTITY(1,1) NOT NULL,
[UserId] [int] NOT NULL,
CONSTRAINT [PK_Orders] PRIMARY KEY CLUSTERED
(
[OrderId] 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
ALTER TABLE [dbo].[Orders] WITH CHECK ADD CONSTRAINT [FK_Orders_Users] FOREIGN KEY([UserId])
REFERENCES [dbo].[Users] ([UserId])
GO
ALTER TABLE [dbo].[Orders] CHECK CONSTRAINT [FK_Orders_Users]
GO