Asp.net .Attach与.Add-in实体框架6.1有何不同?
我正在从这里使用存储库 存储库中使用了以下两种方法:Asp.net .Attach与.Add-in实体框架6.1有何不同?,asp.net,entity-framework,Asp.net,Entity Framework,我正在从这里使用存储库 存储库中使用了以下两种方法: public virtual void Insert(TEntity entity) { ((IObjectState) entity).ObjectState = ObjectState.Added; _dbSet.Attach(entity); _context.SyncObjectState(entity); } public virtual void
public virtual void Insert(TEntity entity)
{
((IObjectState) entity).ObjectState = ObjectState.Added;
_dbSet.Attach(entity);
_context.SyncObjectState(entity);
}
public virtual void InsertGraph(TEntity entity)
{
_dbSet.Add(entity);
}
有人能解释一下Attach和SyncObjectState与.Add之间的区别吗?它是部分特定于您正在使用的开源项目的代码,而不是直接用于EF,所以为什么不检查源代码呢?使用开源不是一个好处吗 简言之:
将获取您的实体及其所有关系并将它们添加到上下文中-图形中的所有实体将作为新实体插入到数据库中InsertGraph
将只插入您正在传递的实体,并且希望不会插入所有关系(如果您没有在其他地方操纵它们的状态)。Insert
只是将特定于框架的状态表示转换为EF状态表示李>SyncObjectState
将获取您的实体及其所有关系并将它们添加到上下文中-图形中的所有实体将作为新实体插入到数据库中InsertGraph
将只插入您正在传递的实体,并且希望不会插入所有关系(如果您没有在其他地方操纵它们的状态)。Insert
只是将特定于框架的状态表示转换为EF状态表示李>SyncObjectState
将获取您的实体及其所有关系并将它们添加到上下文中-图形中的所有实体将作为新实体插入到数据库中InsertGraph
将只插入您正在传递的实体,并且希望不会插入所有关系(如果您没有在其他地方操纵它们的状态)。Insert
只是将特定于框架的状态表示转换为EF状态表示李>SyncObjectState
将获取您的实体及其所有关系并将它们添加到上下文中-图形中的所有实体将作为新实体插入到数据库中InsertGraph
将只插入您正在传递的实体,并且希望不会插入所有关系(如果您没有在其他地方操纵它们的状态)。Insert
只是将特定于框架的状态表示转换为EF状态表示李>SyncObjectState