Вставка данных в несколько таблиц с использованием FK с использованием Entity Framework
Movie - ID, Name, Description, DirectorID-Fk, MusicID-Fk
Director - ID, Name
Music - ID, MusicName
Сейчас я пытаюсь вставить новую запись в фильм, но я не знаю, существует ли Director в БД и то же самое с музыкой).
Из интерфейса я беру all movie information, DirectorName and MusicName
,
Теперь, когда я сохраняю информацию, я должен проверить, directorname
а также musicname
сначала а потом как сделать SaveChanges()
к контексту.
Дайте мне знать, как это работает.
1 ответ
Решение
Если у вас есть только DirectorName
а также MusicName
Вы должны запросить БД, чтобы получить существующие записи (или узнать, что они еще не существуют в БД). Если они существуют, добавьте их в свою сущность фильмов; если нет, создайте новые и добавьте их:
var directorToAdd = context.Directors.FirstOfDefault(d => d.Name == DirectorName) ??
new Director { Name = DirectorName };
var musicToAdd = context.MusicSet.FirstOrDefault(m => m.Name == MusicName) ??
new Music { Name = MusicName };
movie.Director = directorToAdd;
movie.Music = musicToAdd;
context.AddToMovies(movie);
context.SaveChanges();