EF сохранить в контекст, но не в источник данных - PullRequest
4 голосов
/ 04 августа 2010

Имея EF Context и 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 ]

4 голосов
/ 04 августа 2010
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!");
0 голосов
/ 04 августа 2010

Чего вы пытаетесь достичь с помощью теста? Все, что можно сделать в этом тесте, это утвердить базовый контекстный объект Entity Framework, который является для вас бессмысленным.

Если вы пытаетесь затем запустить дополнительные тесты, для которых ObjectContext является зависимостью, вы можете смоделировать ObjectContext с помощью интерфейса. Мы создаем наш собственный интерфейс IObjectContext, который мы извлекаем из сгенерированного T4 ContextObject из нашей модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...