soc*_*man 5 c# asp.net entity-framework entity-framework-6
我有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();
Run Code Online (Sandbox Code Playgroud)
这会在多对多表(CourseVideo
)中添加一条记录,但它也会在Video
表中创建一条新记录.
Video
如果已经存在插入到表中,如何防止插入?
Ste*_*ndl -1
默认情况下,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();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
796 次 |
最近记录: |