在没有ASP.Net MVC模型的情况下,在关联表中添加多对多关系的记录

时间:2016-11-17 12:57:01

标签: asp.net-mvc entity-framework

如何在关联表中为多对多关系添加数据。 例如,如何在 CoursePrograms 中添加数据,而无需创建该表的模型。

我正在使用 Code First from Database 方法,Visual Studio为我创建了模型,但它没有为 CourseProgram 创建任何模型。

我从课程中获得相关课程,反之亦然但我可以在没有 CoursePrograms模型的关联表中添加数据吗? Relation

场景:我创建了一个程序(ComputerScience),然后我创建了一个课程(SoftwareEngineering)。两者都是单独创建的。现在我如何在CoursePrograms中添加他们的ID?这是三个不同的独立任务。

2 个答案:

答案 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();

我自己想到了,解决方案在任何地方都没有提及

相关问题