Вставка данных в несколько таблиц с использованием FK с использованием Entity Framework - PullRequest
1 голос
/ 24 октября 2010
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 Ответ

1 голос
/ 24 октября 2010

Если у вас есть только 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...