实体框架数据库优先 - 复合外键



我有一个包含几个复合外键的数据库。例如,下面是外键的生成脚本:

ALTER TABLE [dbo].[WorkingRosters]  WITH NOCHECK ADD  CONSTRAINT
[FK_WorkingRoster_ShiftLeaveCode] FOREIGN KEY([OrganizationID], [ShiftLeaveCode])
REFERENCES [dbo].[ShiftLeaveCodes] ([OrganizationID], [Code])
GO

我正在尝试使用实体框架 5 数据库优先从此数据库生成模型。但是,复合外键的关联不会与所有表和其他简单外键一起生成。

我怎样才能:

  1. 在电火花(疼痛)
  2. 让实体框架正确生成这些外来的键,以便我有映射

谢谢!

实体框架数据库优先不会根据需要使用唯一键。如果希望它们成为导航属性,则应将它们设置为外键。

现在,您必须选择:1)您只需要NavPrs,2)您还需要连接表作为实体。

1) 为此,只需将这些外键设置为复合主键。

2) 要实现此目的,请将它们保留为外键,并为联结表声明标识类型 ID 列并将其设置为主键。

这应该适合您

我在 EF6 中遇到了同样的问题,其中 Visual Studio 中的"从数据库更新模型"无法识别复合外键,该外键引用了另一个表中的列,这些列具有唯一索引,但不是引用表的复合主键。

在使引用的列成为引用表中的复合 PK 并重做"从数据库更新模型"后,外键被识别为导航属性。

即将引用的列设为 PK 在 EF6 中为我解决了这个问题。

相关内容

  • 没有找到相关文章

最新更新