【问题标题】:AddObject necessary in Entity Framework?实体框架中需要 AddObject 吗?
【发布时间】:2010-05-27 09:21:17
【问题描述】:

我在 SQL 2005 数据库上使用实体框架(第一次)进行数据迁移,发现这种非常奇怪的行为...

到目前为止,我从来不需要调用 AddObject 方法来保存新记录。 SaveChanges 总是能做到这一点,所以我认为实体构造函数总是将新实体连接到数据上下文。

现在我为另一种实体类型添加了迁移,突然之间只有大约 20% 的记录被持久化,所以现在我必须为该实体类型调用 AddObject 方法。任何人都可以解释这种行为是如何工作的?

【问题讨论】:

    标签: c# sql entity-framework


    【解决方案1】:

    当您在其属性之一上调用 setter 并将其设置为已附加(例如通过相同上下文加载)的实体引用时,Entity Framework 似乎附加了一个新实体。

    所以:

    var myEntity = new MyEntity { Name = "name" }; // will not implicitly add the entity to the context
    var myEntity = new MyEntity { OtherEntity = someAttachedEntity }; // will implicitly add the entity to the context
    

    【讨论】:

    • 这听起来很对。考虑一下如果你只是创建新的,它与上下文绝对没有关系,因此需要添加。
    猜你喜欢
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-28
    • 2019-07-18
    • 2021-11-16
    相关资源
    最近更新 更多