我坐在一个相当奇怪的错误 - 我相信我按照正确的步骤来解决。
基本上,我的编译器抱怨以下内容:
Type 'InteractionsEntities' is not defined
以下是对我所做的一切的解释。我的目标是在我的vb.net项目中使用C#编译的类。
第1步:右键单击我的VB.NET项目 - 添加>参考
第2步:在项目列表之外,我选择了包含InteractionsEntities
类的C#项目并按了确定。
第3步:我在vb.net模块中添加了代码行:Imports CsharpProject.CsharpNamespace
第4步:在我的模块中,我添加了一个变量:Private context = new InteractionsEntities
- 注意到这一点,Intellisense能够找到我需要的类。
第5步:为了确保我的项目可以使用实体框架,我使用了nuget包管理器来安装实体框架。
因此,按照上面列出的步骤,我有以下代码:
Imports CsharpProject.CsharpNamespace
Module Module1
Dim context = New InteractionsEntities()
Sub Main(properties As String())
Dim documents = context.Documents.Select(Function(x) x)
For Each document In documents
Console.WriteLine(document.Name)
Next
End Sub
奇怪的是,Intellisense能够检测到我的C#名称空间中存在InteractionsEntities。在安装entityframework nuget包时,错误将消失 - 我能够访问上下文变量中的属性。我点击的那一刻"重建所有" - 错误Type 'InteractionsEntities' is not defined
返回。将鼠标悬停在命名空间(现在也标记为错误)并单击Error Corrections Options
不会产生更正建议。
我错过了中间的一步吗?为什么我的VB.NET项目抱怨该类不存在呢?我已经在c#名称空间下测试了其他类(与实体框架无关),并且会产生相同的效果。
答案 0 :(得分:7)
发生这种情况时,请确保您的C#项目和VB.NET项目至少在同一.NET Framework版本中编译。
我在项目中的检查如下:
这解决了我的问题。