【问题标题】:ObjectSet query not returning added EntityObject until SaveChanges() calledObjectSet 查询在调用 SaveChanges() 之前不返回添加的 EntityObject
【发布时间】:2010-07-23 06:13:10
【问题描述】:

我想我在这里遗漏了一些非常简单的东西。

我有一个包含 Thing 类型的 ObjectSet 的 EF4 ObjectContext,它映射到我的数据库中名为 Things 的表。如果我将一个事物添加到事物对象集中,那么在我调用 ObjectContext 上的 SaveChanges() 之前,该事物在事物中是不可见的。

因此,在以下测试夹具中,AddToThings_AddsItemsToContext_WithSaveChanges 通过但 AddToThings_AddsItemsToContext_WithoutSaveChanges 失败:

[TestFixture]
public class Ef4Tests
{
    [SetUp]
    public void SetUp()
    {
        var ef4PocEntities = new Ef4PocEntities();
        ef4PocEntities.DeleteDatabase();
        ef4PocEntities.CreateDatabase();
    }

    // this test passes
    [Test]
    public void AddToThings_AddsItemsToContext_WithSaveChanges()
    {
        var ef4PocEntities = new Ef4PocEntities();
        Assert.AreEqual(0, ef4PocEntities.Things.Count());

        ef4PocEntities.AddToThings(new Thing {Name = "Bob"});
        ef4PocEntities.SaveChanges();
        Assert.AreEqual(1, ef4PocEntities.Things.Count());
    }

    // this test fails
    [Test]
    public void AddToThings_AddsItemsToContext_WithoutSaveChanges()
    {
        var ef4PocEntities = new Ef4PocEntities();
        Assert.AreEqual(0, ef4PocEntities.Things.Count());

        ef4PocEntities.AddToThings(new Thing {Name = "Bob"});
        Assert.AreEqual(1, ef4PocEntities.Things.Count());
    }
}

有没有办法做我想做的事? IE。将实体添加到 ObjectSet 并使其可见而不保存到数据库?

【问题讨论】:

    标签: linq .net-4.0 entity-framework-4


    【解决方案1】:

    答案在这里:Finding Entity Framework contexts

    【讨论】:

      猜你喜欢
      • 2012-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-28
      相关资源
      最近更新 更多