Sobes.tech
Back to questions
Junior — Middle
66

Каким образом можно реализовать отношение один к одному между двумя сущностями?

Answer from AI

sobes.tech AI

Отношение один к одному между двумя сущностями в C# обычно реализуется через навигационные свойства и ключи. Например, если есть классы Person и Passport, где у каждого человека один паспорт, можно сделать так:

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

    public Passport Passport { get; set; }
}

public class Passport
{
    public int Id { get; set; }
    public string Number { get; set; }

    public int PersonId { get; set; }  // внешний ключ
    public Person Person { get; set; }
}

В базе данных поле PersonId в таблице Passport будет уникальным и ссылаться на Person. В Entity Framework можно дополнительно настроить это отношение через Fluent API, чтобы указать, что это именно один к одному.

Таким образом, каждая сущность содержит ссылку на другую, и связь обеспечивается внешним ключом с ограничением уникальности.