EF Core Извличне на данни от контекста
Примерна база Student System от Entity Framework Relations (04 упражнение)
https://imgur.com/eP9yS4w Искам да взема всички студенти с техните курсове.
Получава ми се само с JOIN. А трябва да има и начин със SELECT и INSERT.
var context = new StudentSystemContext();
var students = context.Students
.Join(context.StudentCourses,
s => s.StudentId,
sc => sc.StudentId,
(s, sc) => new
{
s.Name,
s.PhoneNumber,
sc.CourseId
})
.Join(context.Courses,
sc => sc.CourseId,
c => c.CourseId,
(sc, c) => new
{
sc.Name,
sc.PhoneNumber,
Course = c.Name
})
.ToList();
Класовете са описани, връзките са описани, минава в Judge, има данни в базата и работи с JOIN. Как да стане със SELECT и INSERT?
Не работи примерът на VasilValchanov . StudentCourses са CourseEnrollments и е колекция. Това са класовете:
Това е връзката:
var students = db.Students
.Select(s => new
{
s.Name,
Coureses = s.CourseEnrollments
}).ToList();
CourseEnrollments тази колекция я инициализираш като List.
И във връзките не си посочил ForeignKey може да е проблем.
modelBuilder.Entity<StudentCourse>().HasOne(sc => sc.Student).WithMany(c => c.CourseEnrollments).HasForeignKey(sc => sc.StudentId);
modelBuilder.Entity<StudentCourse>().HasOne(sc => sc.Course).WithMany(c => c.StudentsEnrolled).HasForeignKey(sc => sc.CourseId);
Благодаря за отделеното време! Бях пропуснал HasForeignKey, но не знам дали има значение за връзката между ентитата?
Отделно ми се бъгна Intellisense и сега разбрах, че не мога без него. Ей тази заявка измъдрих накрая: