在EF4中模拟实体上下文

时间:2009-11-23 20:50:01

标签: mocking entity-framework-4

我正在使用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.TxModesObjectSet<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

知道如何编译这个吗?

1 个答案:

答案 0 :(得分:4)

你不能这样做。 看看Julie Lerman的帖子系列

  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
  6. 她非常好地解释了如何使用EF4构建存储库模式以让您模拟它。 还有T4模板,但这将让你了解这一切是如何工作的。 没有经过改编的T4模板,启动和运行它仍然需要做很多工作, 但我发现这是一个非常好的运动。 :) 我现在正在自己实施它。

    祝你好运;)