EF保存到上下文但不保存到数据源

时间:2010-08-04 10:33:27

标签: c# .net entity-framework objectcontext

拥有EF上下文和Testenity我想让以下测试工作。

TestEntity testEntity = new TestEntity() { Name = "Hello World" };
context.TestEntities.AddObject(testEntity);
// missing Code
Assert.AreEqual(1, context.TestEntities.Count(), "Entity not in context!");

我知道它适用于SaveChanges(),但我不想将保存 数据源

2 个答案:

答案 0 :(得分:4)

TestEntity testEntity = new TestEntity() { Name = "Hello World" };
context.TestEntities.AddObject(testEntity);

var entitiesInOSM = context.ObjectStateManager.
        GetObjectStateEntries(EntityState.Added | EntityState.Deleted | EntityState.Modified | EntityState.Unchanged).
        Where(ent => ent.Entity is TestEntity).
        Select(ent => ent.Entity as TestEntity);

Assert.AreEqual(1, entitiesInOSM.Count(), "Entity not in context!");

答案 1 :(得分:-1)

你想通过考试达到什么目的?所有这些测试都将在这里实现,即断言底层的Entity Framework ContextObject,这对你来说是一个毫无意义的测试。

如果您尝试运行其他ObjectContext是依赖项的其他测试,则可以使用接口模拟ObjectContext。我们创建了自己的自定义IObjectContext接口,我们从T4生成的ContextObject中提取出我们的模型。