Запрос ObjectSet не возвращает добавленный EntityObject до тех пор, пока не будет вызван SaveChanges()

Я думаю, что мне здесь не хватает чего-то очень простого.

У меня есть EF4 ObjectContext, который содержит ObjectSet типа Thing, который сопоставлен с таблицей в моей базе данных под названием Things. Если я добавлю Thing в Things ObjectSet, то Thing не будет виден в Things до тех пор, пока я не вызову SaveChanges() для ObjectContext.

Итак, в следующем тестовом приспособлении 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());
    }
}

Есть ли способ сделать то, что я хочу? Т.е. добавить сущности в ObjectSet и сделать их видимыми без сохранения в базе данных?

1 ответ

Решение
Другие вопросы по тегам