我的问题是,您是否可以使用实体框架轻松播种第三层数据。我知道两层外键工作,因为我一直使用它们,虽然会有三个?
我的数据结构如下。
顶级表
表一 - 公司(一到多个地区) - " list" 区域
表二 - 区域(一对多项目) - " list" Items
表三 - 项目(多对一) - ItemID 目前,两个级别(公司和区域之间)的语法工作正常:
var NewCompany = new Company() {
Areas = new List<Area>(){
Areaid = 0
}
}
_context.Company.Add(NewCompany);
_context.Areas.AddRange(NewCompany.Areas);
问题是如何实现以下目标,将第三个表作为列表添加到区域。
var NewCompany = new Company() {
Areas = new List<Area>(){
Items = new List<Items>(){
itemId= 1
}
}
}
_context.Company.Add(NewCompany);
_context.Areas.AddRange(NewCompany.Areas);
_context.Areas.AddRange(NewCompany.Areas.Items);
答案 0 :(得分:0)
理想情况下,如果您在数据库中很好地指定了约束并正确配置了模型,那么您就不需要将相关实体(Area&amp; Items)添加到relavant实体集合中。
var NewCompany = new Company() {
Areas = new List<Area>(){
Areaid = 0
Items = new List<Item>(){
new Item(1),
new Item(2)
...
...
}
}
}
//just add newCompany instance to the entity collection rest should be automatically taken care.
_context.Company.Add(NewCompany);
//no need to write below statement.
//_context.Areas.AddRange(NewCompany.Areas);