Я использую Entity Framework в своем приложении, и у меня есть модели «один ко многим», подобные этой:
public class Email
{
public string Id { get; set; }
public string To { get; set; }
public string From { get; set; }
public string CC { get; set; }
public string Bcc { get; set; }
public string Subject { get; set; }
public string Body { get; set; }
public ICollection<AnexoEmail> Anexos{get;set;}
}
public class AnexoEmail
{
[Key]
public string Id { get; set; }
/// <summary>
/// Full path do ficheiro
/// </summary>
public string Nome { get; set; }
public DateTime DataEnvio { get; set; }
public bool Enviado { get; set; }
public string EmailId { get; set; }
public Email Email { get; set; }
}
Представляет собой отношение Email-Attachment. Дело в том, что у меня есть UOW
и репозиторий EmailRepository
, и происходит нечто, чего я не могу понять:
В хранилище:
public class EmailRepository : IEmailRepository
{
internal DbContext _context;
internal DbSet<Email> dbSet;
internal DbSet<AnexoEmail> dbSetAnexo;
public EmailRepository(DbContext context)
{
_context = context;
dbSet = context.Set<Email>();
dbSetAnexo = context.Set<AnexoEmail>();
}
(...)
public IEnumerable<Email> GetAll()
{
dbSetAnexo.ToList(); //<- I can´t understand this part
var emails = dbSet.ToList();
return email;
}
}
В этом примере я ожидаю, что emails.Anexos
будет null
, но по какой-то причине, если я добавлю эту строку, emails.Anexos
получит правильные вложения (anexos), а если я не emails.Anexos
будет нулевым, как и ожидалось.
У меня нет большого опыта работы с ядром Ef, если я пропускаю какой-то класс или что-нибудь, просто скажите мне.
Спасибо.