当我想通过Entity Framework Core向我的数据库添加一个新数据集时,我首先创建实体,然后用数据填充它,然后我可以调用context.Add(entityData);或context.Entity.Add(entityData);,我已经看到了两种方法的代码示例,微软的官方文档是用第二种方法实现的,但是我找不到任何解释不同之处的东西。查看Visual Studio代码提示,它们看起来是一样的。两者之间是否存在功能差异?如果存在,我何时会使用其中一个而不是另一个?
context.Add(entityData);
context.Entity.Add(entityData);
lnxxn5zx1#
DbSet.Add开始跟踪处于Added状态的给定实体以及尚未跟踪的任何其他可访问实体,以便在调用SaveChanges()时将这些实体插入到数据库中。和DbContext.Add开始跟踪处于Added状态的给定实体以及尚未跟踪的任何其他可访问实体,以便在调用SaveChanges()时将这些实体插入到数据库中。做同样的事情。实际上,实现看起来是一样的-DbSet通过InternalDbSet,DbContext通过SetEntityState。
DbSet.Add
DbContext.Add
DbSet
InternalDbSet
DbContext
SetEntityState
1条答案
按热度按时间lnxxn5zx1#
DbSet.Add
开始跟踪处于Added状态的给定实体以及尚未跟踪的任何其他可访问实体,以便在调用SaveChanges()时将这些实体插入到数据库中。
和
DbContext.Add
开始跟踪处于Added状态的给定实体以及尚未跟踪的任何其他可访问实体,以便在调用SaveChanges()时将这些实体插入到数据库中。
做同样的事情。
实际上,实现看起来是一样的-
DbSet
通过InternalDbSet
,DbContext
通过SetEntityState
。