使用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
。
现在,当我正在保存信息时,我必须先检查是否用directorname
和musicname
先来,然后再怎么做SaveChanges()
来上下文。
让我知道这项工作。
答
如果你只有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();