如何在关联表中为多对多关系添加数据。 例如,如何在 CoursePrograms 中添加数据,而无需创建该表的模型。
我正在使用 Code First from Database 方法,Visual Studio为我创建了模型,但它没有为 CourseProgram 创建任何模型。
我从课程中获得相关课程,反之亦然但我可以在没有 CoursePrograms模型的关联表中添加数据吗?
场景:我创建了一个程序(ComputerScience),然后我创建了一个课程(SoftwareEngineering)。两者都是单独创建的。现在我如何在CoursePrograms中添加他们的ID?这是三个不同的独立任务。
答案 0 :(得分:0)
这就是我解决问题的方法。
db.Programs.Where(p => p.Program_Id == program)
.Select(p=>p).Single()
.Courses.Add( course );
db.SaveChanges();
其中
program(int) = function parameter
course = object of Model 'Courses'
答案 1 :(得分:0)
考虑您拥有:
table_T1(Id,....)
table_T2(Id,....)
t1_t2(Table_t1Id,Table_t2Id,...)//连接表
如果要将新记录添加到table_T1,将新记录列表添加到table_T2,并将(Table_t1Id,Table_t2Id)s列表添加到t1_t2:
table_T1 t1 = new table_T1 (); // and fill it with data
t1.table_T2 = new List<table_T2>();
t1.table_T2.Add(new t1.table_T2 {Id, ... });
t1.table_T2.Add(new t1.table_T2 {Id, ... });
dbcontext.table_T1.Add(table_T1);
dbcontext.saveChanges();
如果您只想向table_T1添加新记录并添加记录列表t1_t2以指向table_T2中已经存在的其他记录:
table_T1 t1 = new table_T1 (); // and fill it with data
t1.table_T2 = new List<table_T2>();
t1.table_T2.Add( dbcontext.table_T2.where(Id == 1).first() );
t1.table_T2.Add( dbcontext.table_T2.where(Id == 2).first() );
dbcontext.table_T1.Add(table_T1);
dbcontext.saveChanges();
我自己想到了,解决方案在任何地方都没有提及