使用Entity Framework T4生成的扩展的奇怪的模糊调用错误

时间:2013-03-12 21:24:46

标签: c# .net linq entity-framework ef-code-first

想知道是否有人可以解释为什么我会收到此错误。

我正在编写一些与实体对象交互的代码(使用T4模板生成数据库上下文),尽管IQueryable<T> Include<T>方法仅在此特定数据库上下文的命名空间中定义一次(目前为止) ,我们将其称为Context A),每当我尝试在LINQ查询like the following中使用include扩展方法时,我都会收到“模糊调用”错误。

在包含上面链接的图片中显示的RemoveDataFromTestRun()方法的类中,我还在代码和Context B声明中引用了另一个DB Context(using Path.To.ContextB.Namespace;)。 Context B位于Context A的同一解决方案中,位于完全不同的命名空间和项目中。

奇怪的部分是如果我在这个类中完全取消对Context B的引用,我不再被大吼大叫,因为编译器/重新锐化器认为我正在调用它声称的方法含糊不清。< / p>

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

尝试使用Visual Studio的定义工具(我假设你使用的是这个);如果这确实是一个名字冲突,那么你将有两个选择目标。如果你有导航,Resharper也可以对导航有很大的帮助。如果你似乎无法获得两个不同的目标,那么一个程序集可能已经加载了两次(可能是一个稍微旧的版本,或者其他一些奇怪的东西)......我担心除此之外我没有任何其他想法。< / p>