使用ADO.NET Mocking Context Generator时未设置导航属性

时间:2011-12-01 01:28:23

标签: .net entity-framework-4 ado.net mocking

我正在为我的Entity Framework模型使用ADO.NET Mocking Context Generator插件。我还没有开始使用模拟,只是尝试修复生成的实体和上下文类,使应用程序像以前一样运行,没有异常。我已经修复了T4模板以支持SaveChanges方法。

现在我遇到了另一个问题:当我尝试访问任何导航属性时,它被设置为null。 从DB表继承的所有原始字段都已设置且正确。

所以我正在做的是以下

using (var context = MyContext())
{
      var order = context.Orders.Where(p => p.Id == 7);
      var product = order.Products;
}

在这种情况下,product设置为null。但是在使用默认代码生成器时并非如此,它用于返回实际的产品对象。

感谢您提出任何建议!

1 个答案:

答案 0 :(得分:0)

我试图修复t4模板并没有任何帮助。所以我放弃了ADO.NET Mocking Context Generator模板并切换到ADO.NET POCO实体生成器模板。我按照这里提到的步骤http://slappyza.wordpress.com/2010/08/08/getting-the-entity-framework-to-generate-an-interface-for-mocking/ 但是我没有使用RhinoMock进行测试,而是使用了Moq库。

它终于奏效了!