Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про Entity Framework: entity framework, migration, navigation property

Что автоматически создается в миграции при использовании NavigationProperty в Code First?

Проверяет понимание работы миграций EF Core при наличии навигационных свойств.

Короткий ответ

При добавлении NavigationProperty EF автоматически:

  1. Создает внешний ключ (FK) в таблице

  2. Генерирует соответствующие поля в БД

  3. Добавляет индекс для FK (по умолчанию)

Длинный ответ

Пример модели:

public class Order
{
    public int Id { get; set; }
    public int UserId { get; set; }
    public User User { get; set; } // Navigation property
}

Сгенерированная миграция:

migrationBuilder.CreateTable(
    name: "Orders",
    columns: table => new
    {
        Id = table.Column<int>(nullable: false)
            .Annotation("SqlServer:Identity", "1, 1"),
        UserId = table.Column<int>(nullable: false) // FK создан автоматически
    },
    constraints: table =>
    {
        table.PrimaryKey("PK_Orders", x => x.Id);
        table.ForeignKey(
            name: "FK_Orders_Users_UserId",
            column: x => x.UserId,
            principalTable: "Users",
            principalColumn: "Id",
            onDelete: ReferentialAction.Cascade); // Связь создана
    });

migrationBuilder.CreateIndex(
    name: "IX_Orders_UserId", // Индекс создан автоматически
    table: "Orders",
    column: "UserId");

Уровень

  • Рейтинг:

    1

  • Сложность:

    7

Навыки

  • Entity Framework

    Entity Framework

Ключевые слова

#entity framework

#migration

#navigation property

Подпишись на C# Developer в телеграм