Можно ли напрямую ссылаться на таблицу «многие ко многим», используя структуру сущностей, сначала код

Я использую структуру сущностей и моделирую отношения многие ко многим.

Я создал отношения между двумя объектами, используя свободный API (скажем, пользователи и группы):

this.HasMany(t => t.Users)
.WithMany(t => t.Groups)
.Map(
m =>
{
  m.ToTable("GroupMembers");
  m.MapLeftKey("Group_Id");
  m.MapRightKey("User_Id");
});

Это прекрасно работает, но я также хотел бы иметь возможность напрямую ссылаться на таблицу GroupMembers. Для этого у меня есть что-то вроде:

[Table("GroupMembers")]
public class GroupMember
{
    #region Properties

    /// <summary>
    /// Gets or sets the group.
    /// </summary>
    public virtual Group Group { get; set; }

    /// <summary>
    /// Gets or sets the Id of rht group.
    /// </summary>
    [Key]
    [Column("Group_Id", Order = 1)]
    public int GroupId { get; set; }

    /// <summary>
    /// Gets or sets the user.
    /// </summary>
    public virtual User User { get; set; }

    /// <summary>
    /// Gets or sets the Id of the user.
    /// </summary>
    [Key]
    [Column("User_Id", Order = 2)]
    public int UserId { get; set; }

    #endregion
}    

Тем не менее, я получу следующую ошибку во время инициализации DbContext:

Указанная схема недействительна. Ошибки: (381,6): ошибка 0019: EntitySet «GroupUser» со схемой «dbo» и таблицей «GroupMembers» уже определен. Каждый EntitySet должен ссылаться на уникальную схему и таблицу.

Я полагаю, что это связано с тем, что структура сущностей не осознает, что таблица GroupMembers, указанная в свободном API, и таблица сущностей GroupMembers фактически являются одним и тем же. Другими словами, если я удаляю свободный код API, который описывает отношение «многие ко многим», то я успешно могу инициализировать DbContext.

Могу ли я иметь таблицу «многие ко многим», на которую я также могу ссылаться напрямую?

Ответы на вопрос(4)

Ваш ответ на вопрос