Запрос 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 ответ
Решение