我正在尝试通过Entity Framework调用存储过程,但不断出现以下错误:
从具体化的“ System.Guid”类型到 “ System.String”类型无效。
我的代码如下:
Using conn As New LPPContext
Dim para = New SqlParameter("DiscussionID", SqlDbType.UniqueIdentifier)
para.Value = DiscussionID 'DiscussionID is a GUID passed into the method
Return conn.Database.SqlQuery(Of spDiscussion_Get)("Exec spDiscussion_Get @DiscussionID", para).SingleOrDefault()
End Using
作为测试,我编写了以下代码,以使用SQLCommand调用存储过程,此方法有效:
Dim conn As SqlConnection = Database.GetSQLConnection()
Dim cmd = New SqlCommand("spDiscussion_Get", conn)
Dim cmdTimeout As Integer = 600
cmd.CommandTimeout = cmdTimeout
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add(New SqlParameter("DiscussionID", SqlDbType.UniqueIdentifier))
cmd.Parameters("DiscussionID").Value = DiscussionID
conn.Open()
Dim reader As SqlDataReader = cmd.ExecuteReader()
我的问题是,为什么第一段代码会引发异常?