我有一个包含几个复合外键的数据库。例如,以下是外键的生成脚本:
ALTER TABLE [dbo].[WorkingRosters] WITH NOCHECK ADD CONSTRAINT
[FK_WorkingRoster_ShiftLeaveCode] FOREIGN KEY([OrganizationID], [ShiftLeaveCode])
REFERENCES [dbo].[ShiftLeaveCodes] ([OrganizationID], [Code])
GO
我正在尝试使用Entity Framework 5 Database-First从此数据库生成模型。但是,复合外键的关联不会与所有表和其他简单外键一起生成。
我怎么能:
谢谢!
答案 0 :(得分:1)
实体框架数据库首先不会根据需要使用唯一键。如果您希望它们是导航属性,则应将它们设置为外键。
现在,您必须选择:1)您只需要NavPrs,2)您还需要将联结表作为实体。
1)要实现此目的,只需将这些外键设置为复合主键。
2)要实现此功能,请将它们保留为外键,并为联结表声明标识类型ID列,并将其设置为主键。
这应该对你有用
答案 1 :(得分:0)
我在 EF6 中遇到了同样的问题,其中 Visual Studio 中的“从数据库更新模型”无法识别复合外键,该外键引用了另一个表中具有唯一索引但不是复合主键的列参考表。
在将被引用列作为被引用表中的复合 PK 并重做“从数据库更新模型”后,外键被识别为导航属性。
即使引用的列成为 PK 解决了我在 EF6 中的问题。