2009-11-23 6 views
1

Я использую VS2010 B2 и EF4 B2 и пытаюсь использовать Rhino Mocks для издевательства контекста сущности, созданного EEF.Скрывающий контекст сущности в EF4

var context = MockRepository.GenerateMock<SomeDBEntities>(); 
IObjectSet<TxMode> objectSet = new List<TxMode> { mode }.AsObjectSet(); 
context.Expect(c => c.TxModes).Return(objectSet); 

Проблема заключается в том, что c.TxModes является свойством типа ObjectSet<TxMode> а я пытаюсь вернуть IObjectSet<TxMode> и я получаю следующее сообщение об ошибке компиляции:

Error 4 The best overloaded method match for 

'Rhino.Mocks.Interfaces.IMethodOptions<System.Data.Objects.ObjectSet 
<Data.Entities.TxMode>>.Return(System.Data.Objects.ObjectSet 
<Data.Entities.TxMode>)' has some invalid arguments. 

Метод расширения AsObjectSet исходит от here.

Любая идея, как я могу получить это, чтобы скомпилировать?

ответ

4

Вы не можете этого сделать. Проверьте серия пост от Джули Лерман

  1. Agile Entity Framework 4 Repository: Part 1- Model and POCO Classes
  2. Agile Entity Framework 4 Repository: Part 2- The Repository
  3. Agile EF4 Repository: Part 3 -Fine Tuning the Repository
  4. Agile EF 4 Repositories Part 4: Compiled LINQ Queries
  5. Agile Entity Framework 4 Repository Part 5: IObjectSet and Include

Она объясняет очень хорошо, как построить шаблон репозитория с EF4, чтобы вы издевались над этим. Есть также шаблон T4, но это позволит вам понять, как все это работает. Без адаптированного шаблона T4, все еще довольно много работы, чтобы его запустить и запустить, , но я считаю это очень хорошим упражнением. :) Я на самом деле сам это выполняю прямо сейчас.

Удача;)