Я думаю, что я что-то упускаю очень просто здесь.
У меня есть 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 и сделать их видимыми без сохранения в базе данных?