4

有一个 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() 一起使用,但我不想将Entity 保存到datasource

4

2 回答 2

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!");
于 2010-08-04T12:23:18.323 回答
-1

你想用你的测试来达到什么目的?所有这些测试将在这里实现的是断言底层实体框架上下文对象,这对你来说是一个毫无意义的测试。

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

于 2010-08-04T19:16:19.767 回答