繁体   English   中英

实体框架通过多对多关系将现有子级分配给父级

[英]Entity Framework assign existing child to parent on a many-to-many relation

我想为课程分配一个现有儿童OBD的列表。 但我得到pk问题或重复的行。 由于可以选中或取消选中天数,因此我应该先删除所有内容,最后再添加所有内容。

Course()
{
  int Id {get;set;}
  string Descripcion {get;set;}
  List<DayOfWeek> Days {get;set;}
}

DayOfWeek()
{
 int Id {get;set;}
 string Name {get;set;}
 List<Course> Courses {get;set;} //Just for Entity Framework to create the many-to-many relation
}

其他信息

  • 代码优先
  • 延迟加载
  • 断开连接(存储库/服务Webapi层,UI层)
  • 实体和dto对象,例如Course被映射到CourseData上的UI,反之亦然。

当我附加一个新对象时,将其设置为“添加”,我需要修复该问题

我建议在DayOfWeek实体中映射您的外键:

DayOfWeek()
{
 int Id {get;set;}
 int CourseId {get;set;}
 string Name {get;set;}
}

然后,您可以执行以下操作:

context.Set<Course>().Add(course);
dayOfWeek.CourseId = course.Id;
context.Set<DayOfWeek>().Attach(dayOfWeek);
context.Entry(dayOfWeek).State = EntityState.Modified;
context.SaveChanges();

如果您映射外键,那么使用EF会使您的生活更轻松。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM