В настоящее время, когда я хочу выбрать учетные записи со связанными свойствами, мне приходится включать их вручную каждый раз, когда я выбираю данные:
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.