Я пытаюсь установить отношение один ко многим в Entity Framework Core, используя Fluent API, но безуспешно.
У меня есть два объекта, которые называются Message и Source и определены как
public class Message
{
public int ID { get; set; }
public int FromUserID { get; set; }
public int ToUserID { get; set; }
public int SourceID { get; set; }
public int Priority { get; set; }
public string Subject { get; set; }
public string MessageBody { get; set; }
public DateTime DateTimeCreated { get; set; }
public DateTime? DateTimeDelivered { get; set; }
public Source Source { get; set; }
}
public class Source
{
public int ID { get; set; }
public string Name { get; set; }
public ICollection<Message> Messages { get; set; }
}
с одним сообщением, относящимся к одному источнику, и одним источником, относящимся ко многим сообщениям.
В моем классе контекста у меня есть следующее
public DbSet<Message> Messages { get; set; }
public DbSet<Source> Sources { get; set; }
и затем определите отношение как
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
...
modelBuilder.Entity<Message>()
.HasOne<Source>(m => m.Source)
.WithMany(s => s.Messages);
}
Если я проверю это со следующим
var get = context.Messages.Where(m => m.ID == 1).FirstOrDefault();
Моя проблема в том, что я получаю данные, возвращенные для сообщения ОК, но для источника я получаю только ноль.
Я смотрел на различные учебные пособия и вопросы SOF по этому поводу, но я не вижу, в чем я ошибаюсь.
Надеюсь, кто-то может пролить свет на это.