【问题标题】:AddObjects() doesnt appear in Entity Framework [duplicate]Ad Objects() 未出现在实体框架中[重复]
【发布时间】:2015-04-27 18:23:31
【问题描述】:
 NorthwindEntities n = new NorthwindEntities();

我从现有数据库创建实体模型,EF 还生成上下文类。我用它。为什么我看不到方法AddObjects()

我只能打电话给Add()

n.Orders.Add(MyOrder);

【问题讨论】:

  • @TetsujinnoOni 谢谢

标签: c# entity-framework collections


【解决方案1】:

那是因为您正在使用 DBContextDBSet<TEntity> 类。 AddObject 方法属于旧的ObjectContext 使用的ObjectSet<TEntity> 类。但是从 Entity Framework 4 开始,我们有了 DbContext 类(它是旧 ObjectContext 的包装器)。这个新类使用DbSet<TEntity> 而不是旧的ObjectSet<TEntity>。新的 set 类具有方法 Add 而不是 AddObject,但用于相同的操作。

我想知道更多关于这个检查这个answer和这个page

【讨论】:

    【解决方案2】:

    这是因为当前版本的 EF 使用 DbContext 而不是 ObjectContext。您可能正在寻找AddRange(),它实际上也是如此。你可以找到一个很好的教程here

    【讨论】:

    • 这两种方法没有区别吗?
    • 在大多数情况下不是,但如果您提供更多代码,我可以肯定地告诉您。如果您愿意一次添加多个实体,您可能应该坚持使用AddRange
    【解决方案3】:

    您尚未指定您使用的实体框架版本。 实际上,您使用的是 Entity Framework 4.0+ 版。 在 EF4.0 之前,有使用 AddObject() 的方法。后来的版本使用 Add() 方法在上下文中添加对象。

    您可以查看以下链接: https://msdn.microsoft.com/en-in/data/jj592676.aspx

    【讨论】:

    • 我使用Entity Famework 6.0.0
    • 您能否说明您在您的场景中是否有任何特殊需要使用 AddObject。?因为 Add() 方法比实体框架的 AddObject 方法更新
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-06
    相关资源
    最近更新 更多