Запрос ObjectSet не возвращает добавленный EntityObject до тех пор, пока не будет вызван SaveChanges () - PullRequest
1 голос
/ 23 июля 2010

Я думаю, что я что-то упускаю очень просто здесь.

У меня есть 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 Ответ

0 голосов
/ 23 июля 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...