Return语句是否会对Using块产生负面影响?

时间:2013-10-24 15:18:06

标签: .net vb.net linq entity-framework linq-to-entities

我写了很多利用Entity Framework& amp;的VB.net Web服务。 LINQ返回JSON数据。很多时候,我只是直接从Using语句中返回数据。

我不禁想知道,存储返回值并将其返回到Using语句之外是否有任何好处?

MSDN documentation on Using州:

  

“无论你如何退出街区,使用区块都可以保证资源的处置。”

所以我认为这是可以接受的,但我只是想确保我不会错过任何潜在的问题。

示例代码:

<WebMethod(), ScriptMethod(ResponseFormat:=ResponseFormat.Json)>
Public Function GetListOfRows()
    Try
        Using CTX As New [EFContext]
            Return (
                From R In CTX.[Rows]
                ).ToList()
        End Using
    Catch Ex As Exception
        'Capture & Report Error
    End Try
End Function

2 个答案:

答案 0 :(得分:1)

我会说在using语句中返回是可以接受的。请记住,using是一个try-catch-finally,在使用后代码运行它将调用dispose方法,就像最后一样。这与您的代码相同:

Try
    Return (From R In CTX.[Rows]).ToList
Catch Ex As Exception
    'Capture & Report Error
Finally
    'dispose
End Try

答案 1 :(得分:0)

  

存储返回值并返回它是否有任何好处   在使用声明之外?

不,我认为没有。

然而,在你的异常块中添加代码有一个巨大的优势 - 做一些异常的事情,所以这是一个已知的问题......