Базовые отношения в рамках сущности - внешний ключ - PullRequest
0 голосов
/ 28 марта 2020

Поскольку я только начал изучать структуру сущностей, мне интересно, как правильно создать отношения между двумя таблицами.

Я бы попробовал сам, но даже не могу установить соединение с базой данных: (

Вот мой вопрос, вот два класса (таблицы) Student и Grade:

public class Student
{
    public int Id { get; set; }
    public string Name { get; set; }

    public int GradeId { get; set; }
    public Grade Grade { get; set; }
}

public class Grade
{

    public int GradeId { get; set; }
    public string GradeName { get; set; }

}

Как и в примере выше, я понял, что добавление типа Grade в качестве свойства создаст связь с таблицей Grade, СЕЙЧАС ВАЖНО но как насчет GradeId, который явно содержит значение внешнего ключа? Он расположен над типом Grade и его имя GradeId, что если я найду его где-нибудь еще и с именем это как StudentGradeId, это все равно будет ForeignKeyId? или оно должно быть строго (содержит тип + Id вместе, как в моем примере): TypeNameId = GradeId?

1 Ответ

1 голос
/ 28 марта 2020

EF будет согласовывать свойства навигации со свойствами внешнего ключа по соглашению. Поэтому, если ваше свойство навигации называется Grade, а свойство внешнего ключа называется GradeId, они будут автоматически сопоставлены.

Если они не соответствуют соглашению, вам просто нужно явно настроить их, декорировав свойства с помощью ForeignKeyAttribute или с помощью Fluent API в OnModelCreating .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...