如果之前有人问过这个问题,我深表歉意。我正在尝试研究,但我也不知道应该搜索什么,抱歉。所以我试图让父母和孩子在我的项目中联系在一起。我有的是这个:
public class ParentDb
{
public int Id { get; set; }
public string Title { get; set; }
public string Description { get; set; }
}
public class ChildDb
{
public int Id { get; set }
public string FirstName { get; set; }
public string LastName { get; set; }
}
我想我应该做类似的事情:
public List<ChildDb> Children { get; set; }
我对如何做到这一点一无所知,因此当我使用控制器添加到我的 ChildDb 时,当我获得所有父母(和孩子)时,它也会添加到父母列表中。
再次抱歉,如果之前有人问过这个问题,或者我是个白痴。我正在尝试,但我只是不知道我在寻找什么。
要在实体框架中设置父子关系,请尝试以下操作:
定义模型:在
ParentDb
中添加集合,在 ChildDb
中添加外键。
public class ParentDb
{
public int Id { get; set; }
public List<ChildDb> Children { get; set; } = new List<ChildDb>();
}
public class ChildDb
{
public int Id { get; set; }
public int ParentId { get; set; }
public ParentDb Parent { get; set; }
}
配置DbContext(可选,EF可以推断这一点):
modelBuilder.Entity<ParentDb>()
.HasMany(p => p.Children)
.WithOne(c => c.Parent)
.HasForeignKey(c => c.ParentId);
添加子级:设置
ParentId
并添加到父级的 Children
。
parent.Children.Add(child);
_context.SaveChanges();
找回家长与孩子:
var parent = _context.Parents.Include(p => p.Children).FirstOrDefault(p => p.Id == parentId);
这应该有效地链接
ParentDb
和 ChildDb
。