我有 3 个表:Video
、Course
和 CourseVideo
。我想插入 CourseVideo
。
Video
可能有也可能没有现有记录,但如果有,我想使用现有记录而不是创建新记录。
我的代码是这样的:
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();
这会在多对多表 (CourseVideo
) 中添加一条记录,但也会在 Video
表中创建一条新记录。
如果 Video
表已经存在,我如何阻止插入?
最佳答案
要防止插入到已存在的视频表中,添加的视频必须在上下文中。您无需为新视频调用 savechanges()。
关于c# - Entity Framework 插入多对多现有 parent 的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29880468/