我有 4 个表/实体,它们分为两组,警报和收件人。一个组中的任何一个实体都可以映射到另一个组的任何一个实体(一个警报可以有许多收件人和收件人组等)。
表:
- 警报
- AlertGroups(与警报的一对多关系)
- 收件人
- RecipientGroups(与收件人的多对多关系)
我不想制作 4 个可连接对象(AlertRecipients、AlertRecipientGroups 等),而是制作一个包含 4 列的连接表,每一列都是我的一种实体类型的可为空的 FK。
我已经在 SQL 中创建了表格,并使用 Fluent API 设置了我的上下文,如下所示:
modelBuilder.Entity<AlertGroup>()
.HasMany(ag => ag.RecipientGroups)
.WithMany(rg => rg.AlertGroups)
.Map(m => m.ToTable("AlertRecipients")
.MapLeftKey("AlertGroupID")
.MapRightKey("RecipientGroupID"));
modelBuilder.Entity<AlertGroup>()
.HasMany(ag => ag.Recipients)
.WithMany(rg => rg.AlertGroups)
.Map(m => m.ToTable("AlertRecipients")
.MapLeftKey("AlertGroupID")
.MapRightKey("RecipientID"));
但我得到这个错误:
指定的架构无效。错误:
(251,6):错误 0019:已定义具有架构“dbo”和表“AlertRecipients”的实体集“AlertGroupRecipient”。每个 EntitySet 必须引用一个唯一的模式和表。
有没有一种解决方法可以做我想做的事情?