Я пытаюсь создать API, используя asp. net core 2.0 Я использовал Scaffold-DbContext для генерации моделей из существующей базы данных.
У меня связь один-ко-многим между Exam и ExamLocation class , здесь код, который генерирует Scaffold-DbContext.
public partial class Exam
{
public Exam()
{
ExamLocations = new HashSet<ExamLocation>();
}
public int ExmId { get; set; }
...
public virtual ICollection<ExamLocation> ExamLocations { get; set; }
}
public partial class ExamLocation
{
public int ExmLocId { get; set; }
public int ExmId { get; set; }
...
public virtual Exam Exm { get; set; }
}
Мой класс контекста
public virtual DbSet<ExamLocation> ExamLocations { get; set; }
public virtual DbSet<Exam> Exams { get; set; }
modelBuilder.Entity<ExamLocation>(entity =>
{
...
entity.HasOne(d => d.Exm)
.WithMany(p => p.ExamLocations)
.HasForeignKey(d => d.ExmId)
.HasConstraintName("FK_ExamLocations_Exam");
});
modelBuilder.Entity<Exam>(entity =>
{
entity.HasKey(e => e.ExmId)
.HasName("PK_Exam");
....
}
В моем ExamsController я вызываю такую процедуру Store
[HttpGet]
public async Task<ActionResult<IEnumerable<Exams>>> Get()
{
return await context.Exams.FromSql("sp_GetCalendar_m").ToListAsync();
}
Когда я запускаю приложение и вызываю этот метод, я получаю эту ошибку
'Невозможно определить взаимосвязь, представленную свойством навигации' ExamLocation.Exm 'типа' Exam '. Либо вручную настройте связь, либо проигнорируйте это свойство с помощью атрибута «[NotMapped]» или с помощью «EntityTypeBuilder.Ignore» в «OnModelCreating». ошибка, но я все еще не знаю, что мне не хватает.
Заранее спасибо!