Как выполнить массовую вставку через свойство навигации в Entity Framework Core с безопасностью типов?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как выполнить массовую вставку через свойство навигации в Entity Framework Core с безопасностью типов?

Сообщение Anonymous »

У меня есть следующая структура базы данных, в которой Студент и Курс связаны отношением многие-ко-многим в StudentCourseLinks. Мне нужно выполнить массовую вставку в StudentCourseLinks, где я вставляю новый CourseId для всех записей Student, принадлежащих определенному SchoolId.
Вот мои упрощенные модели:

Код: Выделить всё

public class Student
{
public int Id { get; set; }
public int SchoolId { get; set; }

// Navigation property to many-to-many relationship
public ICollection Courses { get; set; }
}

public class Course
{
public int Id { get; set; }
public ICollection Students { get; set; }
}

public class StudentCourseLink
{
public int StudentId { get; set; }
public Student Student { get; set; }
public int CourseId { get; set; }
public Course Course { get; set; }
}
Я хочу добиться следующего SQL-запроса в Entity Framework Core, но с безопасностью типов и массовыми операциями (т. е. избегая многократного обращения к базе данных):

Код: Выделить всё

INSERT INTO StudentCourseLinks (StudentId, CourseId)
SELECT s.Id, 1
FROM Students s
WHERE s.SchoolId = 1;
Я хочу добавить новый CourseId (например, 1) для всех учащихся, принадлежащих SchoolId = 1, но я хотел бы добиться этого с помощью типобезопасного API Entity Framework Core, включая использование свойств навигации между Студентом и Курсом. Я бы хотел, чтобы условная вставка также была динамической, поскольку мои условия могут измениться.
Есть ли способ выполнить эту массовую вставку с помощью Entity Framework Core, сохраняя безопасность типов и избегая необработанного SQL?< /p>
Будем очень признательны за любые рекомендации или решения по этому поводу!

Подробнее здесь: https://stackoverflow.com/questions/790 ... -core-with
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»