首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在实体框架6.1中,.Attach与.Add有什么不同?

在实体框架6.1中,.Attach与.Add有什么不同?
EN

Stack Overflow用户
提问于 2014-04-09 09:14:14
回答 1查看 495关注 0票数 0

我从这里开始使用存储库

工作和储存库的一般单位

存储库中使用了以下两种方法:

代码语言:javascript
复制
    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);
    }

有人能解释一下附件与SyncObjectState和.Add之间的区别吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-09 10:08:09

它是部分特定于您正在使用的开源项目的代码--而不是直接用于EF,所以为什么不检查源代码呢?使用开源不是有好处的吗?

简言之:

  • InsertGraph将获取您的实体及其所有关系,并将它们添加到上下文中--图中的所有实体都将作为新的实体插入数据库。
  • Insert只会插入您要传递的实体,并且希望不会插入所有关系(如果您没有在其他地方操作它们的状态)。SyncObjectState只是将框架特定的状态表示转换为EF状态表示。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22957927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档