Модель не полностью загружается из БД после сохранения из EF-Core

У меня есть подход EF-Core Code-First. Я сохраняю модель держателя в базе данных, которая содержит идентификатор и список моделей.

При сохранении все работает нормально. Структура правильная, и все данные есть в базе данных. Но если я загружу данные обратно в свой код, список моделей исчезнет.

Я немного смущен, так как обычно EF делал все сам. Я что-то упустил для EF-Core?

Вот фрагмент кода:

БД-контекст:

    public DbSet<FinancialStateHolderModel> States { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder builder)
    {
        builder.UseSqlServer(
            @"Server=.\;Database=Stock;User Id=dbuser;Password=dbuser");
        builder.EnableSensitiveDataLogging(true);
    }

Модель держателя:

    public class FinancialStateHolderModel
{
    [Key]
    public String Symbol { get; set; }


    public List<FinancialStatementModel> Financials { get; set; }
}

Модели:

public class FinancialStatementModel
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    public DateTime Date { get; set; }
}

person Benjamin Schröder    schedule 18.12.2019    source источник
comment
Пожалуйста, покажите нам, как вы загружаете модель. Похоже, вы не загружаете связанные объекты. docs.microsoft.com/en-us/ef/core/ запрос/связанные данные   -  person Train    schedule 18.12.2019
comment
Отлично, пожалуйста, опубликуйте это как ответ. Кроме того, вам нужно загрузить его явно.   -  person Benjamin Schröder    schedule 18.12.2019


Ответы (1)


Проверьте Загрузка связанных данных в Entity Framework.

Ты ищешь

Нетерпеливая загрузка — связанные данные загружаются из базы данных как часть исходного запроса.

В вашем случае (пример не точный синтаксис, потому что я не знаю, как выглядит ваш вызов)

должно быть context.FinancialStateHolders.Include(x=> x.FinancialStatements)

person Train    schedule 18.12.2019
comment
FinancialStateHolders — это Штаты. Итак, оператор выглядит примерно так: context.States.Include(s => s.Financials) - person sam; 18.12.2019