Code First Fluent API и свойства навигации в соединительной таблице

У меня есть четыре сущности, которые я хотел бы преобразовать в таблицы базы данных с помощью свободного кода API (я использую модель, найденную на databaseanswers.org), но я не уверен, как именно. Проблема, с которой я сталкиваюсь, заключается в том, что с помощью метода AdditionalMenuId переносится по двум разным таблицам в комбинированном ключе (MenuCourse и CourseRecipeChoice).

Вот сообщение, которое я получаю:

& quot; Одна или несколько ошибок проверки были обнаружены во время генерации модели:

\ tSystem.Data.Entity.Edm.EdmAssociationConstraint:: количество свойств в зависимых и основных ролях в ограничении отношений должно быть одинаковым. & quot;

Вот то, что я пробовал в своем классе EntityTypeConfiguration, и это, очевидно, неверно ...

<code>public class CourseRecipeChoiceConfiguration : EntityTypeConfiguration<CourseRecipeChoice>
{
    public CourseRecipeChoiceConfiguration()
    {
        HasKey(crc => new { crc.Id});
        HasRequired(r => r.Recipe).WithMany(crc => crc.CourseRecipeChoices).HasForeignKey(crc => crc.RecipeId);
        HasRequired(m => m.MenuCourse).WithMany(crc => crc.CourseRecipeChoices).HasForeignKey(crc => crc.MenuCourseId);
        HasRequired(m => m.MenuCourse).WithMany(crc => crc.CourseRecipeChoices).HasForeignKey(crc => crc.SuggestedMenu_MenuCourseId);
    }
}
</code>

Каков правильный синтаксис для свойств навигации и правильный синтаксис для свободного синтаксиса API для таблицы соединений CourseRecipeChoice?

<code>public class SuggestedMenu
{
    public int SuggestedMenuId { get; set; }

    public virtual ICollection<MenuCourse> MenuCourses { get; set; }
}

public class MenuCourse
{
    public int Id { get; set; }
    public int SuggestedMenuId { get; set; }

    public SuggestedMenu SuggestedMenu { get; set; }
    public virtual ICollection<CourseRecipeChoice> CourseRecipeChoices { get; set; }
}

public class CourseRecipeChoice
{
    public int SuggestedMenuId { get; set; }
    public int MenuCourseId { get; set; }
    public int Id { get; set; }
    public int RecipeId { get; set; }

    //How do I represent the navigation properties in this class? 

}

public class Recipe
{
    public int RecipeId { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }

    public ICollection<CourseRecipeChoice> CourseRecipeChoices { get; set; }
}
</code>

Ключи следующие:

SuggestedMenu(Id) MenuCourse(Id, SuggestedMenuId) CourseRecipeChoice(Id, SuggestedMenuId, MenuCourseId, RecipeId) //this is actually where I get confused because according to the model, SuggestedMenuId is a PK in SuggestedMenu and a PF in MenuCourse and CourseRecipeChoice (could this just be bad design?) Recipe(RecipeId)

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

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