为什么我的DbContext在运行时为我的对象创建代理,而不是在单元测试中?

时间:2012-11-28 16:33:46

标签: .net entity-framework

我有一个使用Entity Framework 4.0和.NET 4.5构建的应用程序。当我使用默认代码生成项时,它为表生成DbContextPOCOs

当我在运行时,每当我执行查询时,返回的对象始终是从原始类型继承的动态生成的代理类型。例如,如果我有Person类型,则查询将始终返回从Person_48573435继承的Person(它不是确切的名称)。

但是,在我的单元测试中,这种情况不会发生,这会导致某些行为与上下文不同。

DbContext实例化的唯一区别在于,在单元测试中,我明确地传入连接字符串,并且在运行时它是从web.config文件中获取的。顺便说一句,我不得不改变TT,所以我可以引入一个接收连接字符串的构造函数。不确定Microsoft为何删除了ObjectContext TT中存在的构造函数。无论如何,除了这个代理服务外,一切正常。

问题是?什么控制查询返回对象的实例化方式?我可以做些什么来影响这种行为?

0 个答案:

没有答案