[英]Entity Framework insert many to many record with existing parents
我有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
表?
要阻止插入Video表(如果已存在),添加的視頻必須位於上下文中。 您無需為新視頻調用savechanges()。
在默認情況下,EF不檢查是否存在N:M關系的條目。
您應該將您的課程更改放在if
語句中:
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();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.