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

今、映画に新しいレコードを挿入しようとしていますが、Director が DB に既に存在しているかどうか、音楽と同じかどうかはわかりません)。

UIから私は取っていall movie information, DirectorName and MusicNameます。

今、情報を保存しているときはdirectornamemusicname最初にコンテキストを使用するかどうか、次にSaveChanges()コンテキストをどのように行うかを確認する必要があります。

これがどのように機能するか教えてください。

4

1 に答える 1

1

DirectorNameとしかない場合はMusicName、既存のエントリを取得する (または DB にまだ存在しないことを確認する) ために、DB にクエリを実行する必要があります。存在する場合は、movies エンティティに追加します。そうでない場合は、新しいものを作成して追加します。

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 に答える