【发布时间】: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