Два элемента внешнего ключа одной и той же таблицы в модели Entity Framework? - PullRequest
0 голосов
/ 11 ноября 2019

Я пытаюсь использовать Entity Framework для создания таблицы базы данных, которая будет иметь два столбца, один для Person и другой для Person . Другими словами, будет два внешних ключа, и каждый из них будет указывать на две разные записи в одной и той же таблице.

один вопрос , который наиболее близко соответствует моей ситуации, написан плохо ине имеет ответов. Большинство вопросов в StackOverflow и в других местах касаются коллекций множества множественных записей. В моей ситуации мне просто нужно знать, как настроить два внешних ключа для одной и той же таблицы в модели.

Мне это не подходит, а Visual Studio этого не делаетэто тоже нравится, потому что код дважды ссылается на Person.

public class Lesson
{
    [Key]
    public int LessonId { get; set; }

    [ForeignKey("Person")]
    [Column(Order = 0)]
    public string studentId { get; set; } 
    public Person Person { get; set; }

    [ForeignKey("Person")]
    [Column(Order = 1)]
    public string teacherId { get; set; }
    public Person Person { get; set; }
}

Вам это подходит? Я пытаюсь решить не ту проблему? ... Или, еще лучше, есть ли какой-то синтаксис, чтобы заставить это работать?

1 Ответ

2 голосов
/ 11 ноября 2019

Вам это подходит?

Нет. Попробуйте что-то вроде:

public class Lesson
{
    [Key]
    public int LessonId { get; set; }

    [ForeignKey("Student")]
    public string StudentId { get; set; } 
    public Person Student { get; set; }

    [ForeignKey("Teacher")]
    public string TeacherId { get; set; }
    public Person Teacher{ get; set; }

}
...