实体框架-将Guid传递给存储过程

时间:2020-09-10 11:19:17

标签: entity-framework stored-procedures

我正在尝试通过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()

我的问题是,为什么第一段代码会引发异常?

0 个答案:

没有答案