1

我正在使用 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 扩展方法来自这里

知道如何编译它吗?

4

1 回答 1

4

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

  1. 敏捷实体框架 4 存储库:第 1 部分 - 模型和 POCO 类
  2. 敏捷实体框架 4 存储库:第 2 部分 - 存储库
  3. 敏捷 EF4 存储库:第 3 部分 - 微调存储库
  4. 敏捷 EF 4 存储库第 4 部分:编译的 LINQ 查询
  5. 敏捷实体框架 4 存储库第 5 部分:IObjectSet 和包含

她很好地解释了如何使用 EF4 构建存储库模式以让您模拟它。还有 T4 模板,但这会让您了解所有这些是如何工作的。如果没有经过改编的 T4 模板,要让它运行起来仍然需要做很多工作,但我觉得这是一个很好的练习。:) 实际上我现在正在自己实施它。

祝你好运 ;)

于 2009-12-12T17:13:43.480 回答