Ho 3 tavoli: Video
, Course
e CourseVideo
. Voglio fare un inserimento in CourseVideo
.
Il Video
può o non può avere un record esistente, ma quando lo fa voglio usare il record esistente e NON creare un nuovo record.
Il mio codice assomiglia a questo:
var video = db.Videos.SingleOrDefault(c => c.Link.Equals(link));
if(video == null)
{
video = new Video { ... };
db.Videos.Add(video);
db.SaveChanges();
}
var course = db.Courses.Include("Videos").Single(c => c.ID == courseID);
course.Videos.Add(video);
db.SaveChanges();
Questo aggiunge un record nella tabella many-to-many ( CourseVideo
) ma crea anche un nuovo record nella tabella Video
.
Come posso impedire l'inserimento nella tabella Video
se già esiste?
Per impedire l'inserimento nella tabella Video se già esiste, il video aggiunto deve essere nel contesto. Non è necessario chiamare savechanges () per il nuovo video.