Как определить отношение «многие ко многим» с помощью Fluent API Entity Framework?

Ниже моя модель:

public class TMUrl
{
    //many other properties

    //only property with type Keyword
    public List<Keyword> Keywords{get;set;} 
}

public class Keyword
{
   //many other properties

   //only property with type TMUrl
   public List<TMUrl> Urls{get;set;}
}

Ясно, что обе сущности имеют отношения многие ко многим. Я выбрал свободный API, чтобы сообщить объектам-структурам об этих отношениях, т.е.

modelBuilder.Entity<TMUrl>
               .HasMany(s => s.Keywords)
               .WithMany(s => s.URLs).Map(s =>
                {
                    s.MapLeftKey("KeywordId");
                    s.MapRightKey("UrlId");
                    s.ToTable("KeywordUrlMapping");
                });

но когда я сделаю

url.Keywords.Add(dbKey); //where url is object of TMUrl, 
                         //dbKey is an existing/new object of Keyword
db.SaveChanges();

Я получаю исключение

An error occurred while saving entities that do not expose foreign key 
properties for their relationships....

InnerException:

The INSERT statement conflicted with the FOREIGN KEY constraint   
"KeywordMaster_Keyword". The conflict occurred in database "DbName", 
table "dbo.KeywordMaster", column 'Id'.The statement has been terminated.

но когда я добавляю конфигурацию с другой стороны, все работает нормально. то есть

modelBuilder.Entity<KeyWord>
         .HasMany(s => s.URLs)
         .WithMany(s => s.Keywords)
         .Map(s =>
               {
                  s.MapLeftKey("KeywordId");
                  s.MapRightKey("UrlId");
                  s.ToTable("KeywordUrlMapping");
               });

Почему?. Почему я должен добавить конфигурацию из обоих объектов, где я прочиталВот и во многих других местах, конфигурации для одного из объектов должны делать.

В каком случае я должен добавить конфигурацию для обеих сущностей, участвующих в отношениях?

Мне нужно это понять. Почему. Пожалуйста помоги.

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

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