经过大量的努力,使我的MVC5 vb.net应用程序配置了Npgsql和EntityFramework6.Npgsql,我可以使用Visual Studio 2017中的“实体数据模型向导”很好地连接到postgres数据库,并与PostgreSQL数据库的数据提供者建立新的连接,输入我的数据库服务器详细信息并测试连接(成功)。我也可以双击EDMX文件并按预期添加表等。这是我的第一个与postgreSQL数据库对话的项目(通常使用MS SQL Server)。直到遇到遇到是试图查询数据库的linq语句的代码,一切似乎都很好。我的Linq声明是:
Dim l_ListOfPwrCycleCrashEvents As List(Of pwr_cycle_crash_events) = (From item In m_AnalyticsEntities.pwr_cycle_crash_events Where item.serialnumber = "0123445678" Select item).ToList
我在try / catch块中有该语句,但是Visual Studio仍然报告以下内容:
引发的异常:System.dll中的“ System.Net.Sockets.SocketException” 信息:无法完成套接字的无阻塞操作 立即发生
我似乎无法弄清楚为什么该语句失败。我可以对在应用程序中也配置的另一个EntityFramework(MS SQL Server)使用类似的语句。
包含linq语句的完整方法:
Public ReadOnly Property iCountOfPwrCycleCrashEvents(
ByVal a_sSerialNumber As String
) As Integer Implements IAnalytics.iCountOfPwrCycleCrashEvents
Get
Try
Dim l_ListOfPwrCycleCrashEvents As List(Of pwr_cycle_crash_events) = (From item In m_AnalyticsEntities.pwr_cycle_crash_events
Where item.serialnumber = a_sSerialNumber
Select item).ToList
If (l_ListOfPwrCycleCrashEvents Isnot Nothing) Then Return l_ListOfPwrCycleCrashEvents.Count
Catch l_Exception2 As System.Net.Sockets.SocketException
Dim askjfhakjh As Integer = 7
Catch l_Exception As Exception
Dim kjhadkjh As Integer = 1
End Try
Return 0
End Get
End Property
我在面向 .NET Framework 4.5.1 的应用程序中使用了 Npgsql v4.1.1 和 EntityFramework6.Npgsql v6.3.0 。
我似乎无法弄清楚linq语句为什么抛出此异常或如何解决该问题。您有什么建议?