Вопрос

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

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 происходит из здесь.

Есть какие-нибудь идеи, как я могу заставить это скомпилироваться?

Это было полезно?

Решение

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

  1. Репозиторий Agile Entity Framework 4:Часть 1- Классы модели и POCO
  2. Репозиторий Agile Entity Framework 4:Часть 2- Хранилище
  3. Гибкий репозиторий EF4:Часть 3 - Тонкая настройка репозитория
  4. Гибкие репозитории EF 4 Часть 4:Скомпилированные Запросы LINQ
  5. Репозиторий Agile Entity Framework 4, Часть 5:IObjectSet и включать

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

Удачи ;)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top