添加到数据库时,我对实体框架中的关系有疑问。
我有以下图层
假设我有这些实体
这些实体互相引用。 在我的服务层中,我获得了课程实体和部门实体。 然后我做了类似的事情:
Course.Department = department;
Unitofwork.CourseSet.Add(Course);
Unitofwork.SaveChanges();
我的问题是: 我是否还需要将部门实体添加到上下文中?
因为即使我没有将部门添加到DepartmentSet,它仍然被添加到数据库中。 关于何时添加到上下文以及何时不必要
,是否存在某种类型的规则希望有人可以提供帮助
答案 0 :(得分:2)
您无需单独添加相关实体,因为EF可以自动检测到这些实体。
此外,即使您单独添加它,也不会产生任何影响,因为相关实体已经(内部)已经附加到Context并且其状态已经设置为“已添加”。
您正在寻找的“规则”非常简单:如果它不是“根”实体的一部分,则必须单独添加。
P.S:插入/添加方案都是如此。更新/编辑方案(来自分离实体)更复杂,通常不会检测到相关实体的更改。