У меня есть некоторое недопонимание, как мои объекты должны быть представлены в реляционной структуре БД.
Например, если у меня есть простая структура таблиц, которая выглядит следующим образом:

И если я сгенерирую модель Entity Framework, основанную на этом, это будетвыглядит так:

Как видите, это ассоциация многих ко многим.(Любое блюдо содержит много ингредиентов, любой ингредиент может использоваться во многих блюдах)
Теперь, что, если мне понадобятся некоторые дополнительные параметры, такие как количество ингредиента в блюде?(Конечно, обычно это будет отличное число для каждого ингредиента в любом другом блюде.)
Если я добавлю несколько дополнительных столбцов непосредственно в таблицу Dish_FooIngridient
, это нарушит тонкость автоматического создания модели, и тогда мне придетсяисправьте ассоциации вручную в конструкторе моделей EF, а затем используйте некоторые громоздкие запросы для работы с объектами.Потому что он будет сгенерирован в нечто вроде этого:

Как видите, теперь есть другие избыточные свойства, которые мне не нужны.Есть ли лучший способ справиться с этим?Может быть, используя сложные свойства или унаследованную сущность, или что-то еще?