У меня есть приложение. net core api, которое включает EF для извлечения данных. Я установил контекст данных, и я могу отображать таблицы из db нормально. Когда я пытаюсь установить отношения, я всегда получаю ноль для вложенного объекта.
У меня есть класс «Возможности», который содержит коллекцию «Примечания»
public class Opportunity
{
public int Id { get; set; }
public string Name { get; set; }
...
public decimal FinalDealProfit { get; set; }
public ICollection<CRMNote> CRMNotes { get; set; }
}
и класс заметок, который ссылается на возможность:
public class CRMNote
{
public int Id { get; set; }
public int OpportunityId { get; set; }
public string Note { get; set; }
public string User { get; set; }
public DateTime DateTime { get; set; }
public string FilePath { get; set; }
public Opportunity Opportunity { get; set; }
}
В моем класс контекста имеет следующие настройки:
modelBuilder.Entity<Opportunity>(entity =>
{
entity.ToTable("CRM_Opportunity");
entity.HasMany<CRMNote>(n => n.CRMNotes)
.WithOne(t => t.Opportunity)
.HasForeignKey(k => k.OpportunityId);
});
, и я также отображал класс Note:
modelBuilder.Entity<CRMNote>(entity =>
{
entity.ToTable("CRM_Note");
//entity.HasOne<Opportunity>(t => t.Opportunity)
// .WithMany(p => p.CRMNotes)
// .HasForeignKey(k => k.OpportunityId);
});
, как вы можете видеть, я играл с тем, как подключить сущности вместе.
Всякий раз, когда я получаю возможность, массив заметок всегда равен нулю. Я попытался поместить пустой конструктор в класс Opportunity:
public Opportunity()
{
CRMNotes = new List<CRMNote>();
}
, но это просто означает, что я получаю пустой массив, а не ноль.
Я не вижу, что я пропустил . Я проверил документы для этого:
https://www.entityframeworktutorial.net/efcore/one-to-many-conventions-entity-framework-core.aspx
, но явно что-то упустил. Любая помощь приветствуется, так как это должна быть легкая задача, но что-то явно ускользает от меня.