c# - Entity Framework 插入多对多现有 parent 的记录

标签 c# asp.net entity-framework entity-framework-6

我有 3 个表:VideoCourseCourseVideo。我想插入 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/

相关文章:

asp.net - ASP.NET MVC 3 Helpers 中的 Tab 键顺序

entity-framework - SimpleMembership 和 Entity Framework 可以共享连接字符串吗?

javascript - 即使未指定,您能否告诉 JSON.Net 将 DateTime 序列化为 Utc?

c# - 希望有一个通用的 Wrapper 类可用

c# - .NET HttpClient : How to set the request method dynamically?

.net - 在 .Net 中解析自定义 JSON 对象?

sql - EF Code First回滚数据库表设计

c# - 如何获取包含 ItemsControl 内容的 Panel 实例?

c# - AcquireTokenSilent 无法静默获取 token ?

SQL Server - 与 NULL 相比非常慢