我需要表格" ALUMNOS"和" MATERIAS"。在SQL中存在另一个表" ALUMNOS BY MATERIAS"。我知道这在EF模型中不是必需的,因为存在属性导航。但是如何插入或删除这个"协会表" ??
提前致谢!! 吉尔
答案 0 :(得分:0)
唯一的方法是在再次保存之前删除Materia和Alumno对象之间的链接。这样,它们就是单个对象,或者只包含所需的链接。这将正确设置映射表。
答案 1 :(得分:0)
创建表格,得到你喜欢的对象。要插入新行,请执行以下操作
StackExchangeExampleEntities exchangeExampleEntities = new StackExchangeExampleEntities();
Alumno alumno = new Alumno() {AlumId = 2, Description = "aldesc"};
Materia materia = new Materia() {materia_Id = 2, description = "mdesc"};
materia.Alumnos.Add(alumno);// attach the relationship
exchangeExampleEntities.Materias.Add(materia);
exchangeExampleEntities.SaveChanges();
要删除映射表,我在一侧清理集合(您可以使用任一集合 - Alumno或materia)
StackExchangeExampleEntities exchangeExampleEntities = new StackExchangeExampleEntities();
Materia materiaFetched = exchangeExampleEntities.Materias.Single(m => m.materia_Id == 2);
materiaFetched.Alumnos.Clear();
exchangeExampleEntities.SaveChanges();
如果您只想使用映射表,那么添加一个新的entityframework文件,然后只选择映射表(不要选择其他任何东西)。这将在上下文中为此映射表创建实体。 现在您可以像这样使用它:
StackExchangeExampleEntities1 exchangeExampleEntities1 = new StackExchangeExampleEntities1();
MateriaAlumono s = exchangeExampleEntities1.MateriaAlumonoes.First();
Console.WriteLine(s.Alumuno_id);