何时使用DbSet .Add()vs DbSet .Attach()
我一直在使用Add()
并遇到一个问题,当Add
一个孩子时,父实体在数据库中被复制了。 使用Attach()
解决了这个问题,但我想知道为什么而不是盲目地磕磕绊绊。
好吧,当你使用Attach
,告诉上下文实体已经在数据库中, SaveChanges
对附加实体没有影响。 另一方面, Add
将上下文中的实体状态(如果它已经存在)更改为Added
,这意味着当您调用SaveChanges
时,它将始终在数据库中插入实体。
这就是区别。