使用FK的Entity框架将数据插入到多表中

问题描述:

Movie - ID, Name, Description, DirectorID-Fk, MusicID-Fk 
Director - ID, Name 
Music - ID, MusicName 

现在我试图插入一个新的记录到电影,但我不知道导演是否已经存在于数据库中,与音乐相同)。使用FK的Entity框架将数据插入到多表中

从UI我正在采取all movie information, DirectorName and MusicName

现在,当我正在保存信息时,我必须先检查是否用directornamemusicname先来,然后再怎么做SaveChanges()来上下文。

让我知道这项工作。

如果你只有DirectorNameMusicName,你必须查询数据库,以获取现有条目(或者发现他们还没有在数据库中存在)。如果它们确实存在,请将它们添加到电影实体中;如果没有,请创建新的并添加下列内容:

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();