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

现在我正在尝试在电影中插入一条新记录,但我不知道导演是否已经存在于数据库中并且与音乐相同)。

从我正在使用的 UI 中all movie information, DirectorName and MusicName

现在,当我保存信息时,我必须先检查是否使用directornamemusicname,然后再检查如何SaveChanges()处理上下文。

让我知道这是如何工作的。

4

1 回答 1

1

如果您只有DirectorNameand 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();
于 2010-10-24T11:51:02.223 回答