EF: автоматически загружать связанные данные - PullRequest
0 голосов
/ 01 июля 2018

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

public async Task<List<AccountDataModel>> GetAccountsAsync()
{
    return await _dbContext.Accounts.Include(a => a.Settings).ToListAsync();
}

public Task<AccountDataModel> GetAccountByLoginAsync(string login)
{
    return Task.FromResult(_dbContext.Accounts.Include(a => a.Settings).Where(a => a.Login.Equals(login)).FirstOrDefault());
}

Модели данных:

public class AccountDataModel
{
    public string Id { get; set; }
    public string Login { get; set; }
    public string Password { get; set; }
    public DateTime Created { get; set; }
    public SettingsDataModel Settings { get; set; } = new SettingsDataModel();
} 

public class SettingsDataModel
{
    public string Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public AccountDataModel Account { get; set; }
}

Настройка отношения:

modelBuilder.Entity<AccountDataModel>(e =>
{
    // Set primary key
    e.HasKey(a => a.Id);

    // Settings one-to-one relationship
    e.HasOne(a => a.Settings)
        .WithOne(s => s.Account)
        .OnDelete(DeleteBehavior.Cascade)
        .HasForeignKey<SettingsDataModel>(s => s.Id)
        .IsRequired();
});

Мне было интересно, можно ли автоматически загружать связанное Settings свойство для каждого выбранного Account?

Я использую последнюю версию EF Core.

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