Сначала я сопоставляю код моей модели с плавным API для генерации схемы.Интересной точкой является
public class RoleMapping : EntityTypeConfiguration<Role>
{
public RoleMapping()
{
// ...
this.HasMany(r => r.Permissions).WithMany();
}
}
Я бы ожидал таблицу ролей, таблицу Perimssions и промежуточную таблицу.Однако, если я не добавлю свойство навигации Roles, не сделаю класс Permission, я получу только две сгенерированные таблицы:
CREATE TABLE [Roles](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](max) NULL )
GO
CREATE TABLE [Permissions](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Role_Id] [int] NULL)
GO
ALTER TABLE [dbo].[Permissions] WITH CHECK
ADD CONSTRAINT [Role_Permissions] FOREIGN KEY([Role_Id])
REFERENCES [dbo].[Roles] ([Id])
GO
ALTER TABLE [dbo].[Permissions] CHECK CONSTRAINT [Role_Permissions]
GO
Почему это так работает?